VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
當前位置:
魔兽世界wow > 編程開發 > Python >
  • python基礎教程之Python Map, Filter and Reduce

  • 2019-05-27 22:17 來源:未知

作者:慧雅

原文鏈接: //www.pythonheidong.com/blog/article/21/

來源:python黑洞網 www.pythonheidong.com

魔兽世界新手法师怎么升级:  

Map, Filter and Reduce

魔兽世界wow www.geyjm.icu 這三個功能有助于編程的提升。我們將逐一討論它們并了解它們的用例。

 

Map

Map將函數應用于input_list中的所有項

 

 

map(function_to_apply, list_of_inputs)
大多數情況下,我們希望將所有列表元素逐個傳遞給函數,然后收集輸出結果。例如:

 

 

items = [1, 2, 3, 4, 5]
squared = []
for i in items:
    squared.append(i**2)
Map允許我們以更簡單,更好的方式實現這一點

 

 

items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
我們甚至可以擁有一系列功能,而不是輸入列表!

 

 

def multiply(x):
    return (x*x)
def add(x):
    return (x+x)

funcs = [multiply, add]
for i in range(5):
    value = list(map(lambda x: x(i), funcs))
    print(value)

# Output:
# [0, 0]
# [1, 2]
# [4, 4]
# [9, 6]
# [16, 8]

 

Filter

 

顧名思義,filter創建一個函數返回true的元素列表。這是一個簡短的例子:

 

 

number_list = range(-5, 5)
less_than_zero = list(filter(lambda x: x < 0, number_list))
print(less_than_zero)

# Output: [-5, -4, -3, -2, -1]

過濾器類似于for循環,但它是內置函數,速度更快。

注意:如果map和filter看起來不厲害,那么您可以閱讀有關list/dict/tuple部分的內容。

reduce

Reduce是一個非常有用的函數,用于在列表上執行某些計算并返回結果。它將滾動計算應用于列表中的連續值對。例如,如果要計算整數列表的乘積。

因此,在python中執行此任務的正常方法是使用基本for循環:

product = 1
list = [1, 2, 3, 4]
for num in list:
    product = product * num

# product = 24
現在讓我們嘗試使用reduce:

 

 

from functools import reduce
product = reduce((lambda x, y: x * y), [1, 2, 3, 4])

# Output: 24
相關教程