我們知道在 Python 中使用循環速度是很慢,如果你正在處理類似的情況,那該怎麼辦呢?
在本文中,我將分享給大家分享可用於取代Python 迴圈的方法和案例:
def multiply_by_2(x): x*2lambda 函數
lambda x: x*2注意:最好使用 lambda 函數而不是常規函數。 1、Map使用 map 函數,我們可以將函數應用於可迭代物件(列表、元組等)的每個值。
map(function, iterable)假設我們想要在一個列表(可迭代物件)中得到一個正方形的數字。我們將首先建立一個 square() 函數來找出數字的平方。
def square(x): return x*x然後,我們將使用 map 函數將 square() 函數應用於輸入數字清單。
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 函數用於從可迭代物件(列表、元組、集合等)中過濾掉值。過濾條件在作為參數傳遞給過濾器函數的函數內設定。
filter(function, iterable)我們將使用 filter 函數來過濾小於 10 的值。
def less_than_10(x): if x < 10: return x然後,我們將使用 Filter 函數將 less_than_10() 函數套用到值列表。
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、ReduceReduce 函數與 map 和 filter 函數有點不同。它迭代地應用於可迭代物件的所有值,並且只傳回一個值。 在下面的範例中,透過應用加法函數來減少數字列表。最終輸出將是清單中所有數字的總和,即 15。
讓我們建立一個新增兩個輸入數字的addition() 函數。
def addition(x,y): return x + y接下來,為了獲得清單中所有數字的總和,我們將把這個加法函數作為參數應用到 reduce 函數。
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
#
以上是Python程式設計:避免使用循環的優秀方法!的詳細內容。更多資訊請關注PHP中文網其他相關文章!