Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung der Python-Funktionen Zuordnen, Filtern und Reduzieren
Dieser Artikel gibt Ihnen eine detaillierte Erklärung der Python-Funktionen Zuordnen, Filtern und Reduzieren. Der Inhalt ist ziemlich gut. Ich hoffe, er kann Freunden in Not helfen >1 .map
ordnet eine Funktion allen Elementen einer Eingabeliste zu. Dies ist seine Spezifikation:
SpezifikationMap
map(function_to_apply, list_of_inputs)
ermöglicht es uns, es viel einfacher und schöner zu machen. Das ist es:
items = [1, 2, 3, 4, 5] squared = []for i in items: squared.append(i**2)
Meistens verwenden wir anonyme Funktionen (Lambdas), um Map
abzugleichen.
Also habe ich das Gleiche oben gemacht. Nicht nur für eine Liste von Eingaben, wir können es sogar für eine Liste von Funktionen verwenden!
def multiply(x): return (x*x)def add(x): return (x+x) funcs = [multiply, add]for i in range(5): value = map(lambda x: x(i), funcs) print(list(value)) # 译者注:上面print时,加了list转换,是为了python2/3的兼容性 # 在python2中map直接返回列表,但在python3中返回迭代器 # 因此为了兼容python3, 需要list转换一下 # Output: # [0, 0] # [1, 2] # [4, 4] # [9, 6] # [16, 8]
2.Filter
顾名思义,filter
过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表,符合要求
即函数映射到该元素时返回值为True. 这里是一个简短的例子:
number_list = range(-5, 5) less_than_zero = filter(lambda x: x < 0, number_list) print(list(less_than_zero)) # 译者注:上面print时,加了list转换,是为了python2/3的兼容性 # 在python2中filter直接返回列表,但在python3中返回迭代器 # 因此为了兼容python3, 需要list转换一下 # Output: [-5, -4, -3, -2, -1]
这个filter
类似于一个for
循环,但它是一个内置函数,并且更快。
注意:如果map
和filter
对你来说看起来并不优雅的话,那么你可以看看另外一章:列表/字典/元组推导式。
3.Reduce
当需要对一个列表进行一些计算并返回结果时,Reduce
是个非常有用的函数。举个例子,当你需要计算一个整数列表的乘积时。
通常在 python 中你可能会使用基本的 for 循环来完成这个任务。
现在我们来试试 reduce:
from functools import reduce product = reduce( (lambda x, y: x * y), [1, 2, 3, 4] ) # Output: 24
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Python-Funktionen Zuordnen, Filtern und Reduzieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!