自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不要在 Python 中使用循環(huán),這些方法其實更棒!

開發(fā) 前端
我們知道在 Python 中使用循環(huán)速度是很慢,如果你正在處理類似的情況,那該怎么辦呢?

我們知道在 Python 中使用循環(huán)速度是很慢,如果你正在處理類似的情況,那該怎么辦呢?

在本文中,我將給大家分享可用于替代 Python 循環(huán)的方法和案例:

  • Map
  • Filter
  • Reduce

在開始使用上述函數(shù)之前,如果你還不熟悉 lambda 函數(shù),讓我們快速了解一下。

Lambda 函數(shù)是常規(guī)函數(shù)的替代方法。它可以在一行代碼中定義,因此在我們的代碼中占用更少的時間和空間。例如,在下面的代碼中,我們可以看到 lambda 函數(shù)的作用。

def multiply_by_2(x):
x*2

lambda 函數(shù)

lambda x: x*2

注意:最好使用 lambda 函數(shù)而不是常規(guī)函數(shù)。

1、Map

使用 map 函數(shù),我們可以將函數(shù)應(yīng)用于可迭代對象(列表、元組等)的每個值。

map(function, iterable)

假設(shè)我們想在一個列表(可迭代對象)中得到一個正方形的數(shù)字。我們將首先創(chuàng)建一個 square() 函數(shù)來查找數(shù)字的平方。

def square(x):
return x*x

然后,我們將使用 map 函數(shù)將 square() 函數(shù)應(yīng)用于輸入數(shù)字列表。

input_list = [2, 3, 4, 5, 6]
# Without lambda
result = map(square, input_list)
# Using lambda function
result = map(lambda x: x*x, input_list)
# converting the numbers into a list
list(result)
# Output: [4, 9, 16, 25, 36]

2、Filter

直觀地說,filter 函數(shù)用于從可迭代對象(列表、元組、集合等)中過濾掉值。過濾條件在作為參數(shù)傳遞給過濾器函數(shù)的函數(shù)內(nèi)設(shè)置。

filter(function, iterable)

我們將使用 filter 函數(shù)來過濾小于 10 的值。

def less_than_10(x):
if x < 10:
return x

然后,我們將使用 Filter 函數(shù)將 less_than_10() 函數(shù)應(yīng)用于值列表。

input_list = [2, 3, 4, 5, 10, 12, 14] 
# Without lambda
list(filter(less_than_10, input_list))
# using lambda function
list(filter(lambda x: x < 10, input_list))
# Output: [2, 3, 4, 5]

3、Reduce

Reduce 函數(shù)與 map 和 filter 函數(shù)有點不同。它迭代地應(yīng)用于可迭代對象的所有值,并且只返回一個值。

在下面的示例中,通過應(yīng)用加法函數(shù)來減少數(shù)字列表。最終輸出將是列表中所有數(shù)字的總和,即 15。圖片讓我們創(chuàng)建一個添加兩個輸入數(shù)字的addition() 函數(shù)。

def addition(x,y):
return x + y

接下來,為了獲得列表中所有數(shù)字的總和,我們將把這個加法函數(shù)作為參數(shù)應(yīng)用到 reduce 函數(shù)。

from functools import reduce
input_list = [1, 2, 3, 4, 5]
# Without Lambda function
reduce(addition, input_list))
# With Lambda function
reduce(lambda x,y: x+y, input_list))
# Output: 15


責(zé)任編輯:華軒 來源: Python學(xué)習(xí)與數(shù)據(jù)挖掘
相關(guān)推薦

2018-07-16 16:29:26

編程函數(shù)代碼

2023-09-27 10:19:37

類型video函數(shù)

2023-08-31 09:10:18

JavaScript調(diào)試

2019-04-15 14:05:56

MySQLUTF-8數(shù)據(jù)庫

2021-03-29 08:05:15

User項目安全

2021-03-04 21:57:12

Python編程語言計算

2020-06-04 08:10:30

Python字符串開發(fā)

2015-10-10 10:36:00

warning category

2020-06-23 14:52:04

Python無用分號語言

2015-04-28 10:35:01

設(shè)計

2023-03-20 11:36:28

Linux命令

2021-10-18 10:53:26

Go 代碼技術(shù)

2018-06-25 14:29:45

MySQLbug數(shù)據(jù)庫

2021-03-18 18:51:17

手機應(yīng)用安全

2023-11-30 09:00:00

TypeScript開發(fā)

2017-12-25 05:40:35

信息安全社交網(wǎng)絡(luò)大數(shù)據(jù)

2023-01-06 23:21:45

python中替換循環(huán)

2024-04-15 12:27:00

await面試接口

2025-04-11 11:55:49

2021-04-26 09:33:46

Go Iota語言
點贊
收藏

51CTO技術(shù)棧公眾號