Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung der Python-Funktionen Zuordnen, Filtern und Reduzieren

Detaillierte Erläuterung der Python-Funktionen Zuordnen, Filtern und Reduzieren

零到壹度
零到壹度Original
2018-04-02 10:13:351931Durchsuche

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:

Spezifikation

Map

Meistens möchten wir alle Elemente in der Liste einzeln an eine Funktion übergeben und die Ausgabe sammeln. Zum Beispiel:

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循环,但它是一个内置函数,并且更快。

注意:如果mapfilter对你来说看起来并不优雅的话,那么你可以看看另外一章:列表/字典/元组推导式


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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn