Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Einführung in Lambda-Ausdrücke in Python (mit Beispielen)

Eine kurze Einführung in Lambda-Ausdrücke in Python (mit Beispielen)

不言
不言nach vorne
2018-10-10 15:34:013068Durchsuche

Dieser Artikel bietet Ihnen eine kurze Einführung in Lambda-Ausdrücke in Python (mit Beispielen). Ich hoffe, dass er Ihnen als Referenz dienen wird.

Eins: Definition einer anonymen Funktion

Lambda-Parameterliste: Ausdruck

Zwei: Ternärer Ausdruck

Das Ergebnis wird zurückgegeben, wenn die Bedingung wahr ist, wenn die bedingte Beurteilung sonst erfolgt Das zurückgegebene Ergebnis, wenn die Bedingung falsch ist

Drei: map

map(func(arg1, arg2...), list1_arg1, list2_arg2), führen Sie das vorherige auf der Listeneingabe später aus. Funktion (mathematische Zuordnung)

4: reduzieren

reduce(func(arg1, arg2...), list1_arg, init_value), kontinuierliche Berechnung, kontinuierlicher Aufruf des Lambda-Ausdrucks

Fünf: Filter

filter(func(arg1, arg2...), list1_arg1) Wenn die Bedingungen erfüllt sind, werden die Daten herausgefiltert!

6: Funktionale Programmierung und imperative Programmierung

def
    if --else
    for
    map reduce filter
    lambda

Die Idee der funktionalen Programmierung. . . .
Die Idee der imperativen Programmierung. . . .

Funktionale Programmierung kümmert sich um die Zuordnung von Daten, und imperative Programmierung kümmert sich um die Schritte zur Lösung von Problemen

Funktionale Programmierung:

(1) bezieht sich auf Funktionen und other Die Datentypen sind gleich und gleichwertig. Sie können anderen Variablen zugewiesen, auch als Parameter verwendet, an eine andere Funktion übergeben oder als Rückgabewert anderer Funktionen verwendet werden.

(2) Verwenden Sie nur „Ausdruck“ anstelle von „Anweisung“

from functools import reduce
# ----------------------------------------------------------------#
#   匿名函数的定义
# ----------------------------------------------------------------#


def add(x, y):
    """
    add x and y
    :param x: x can be str or num
    :param y: y can be str or num
    :return:  x+y
    """
    return x + y


# lambda parameter_list: expression
user_sum = lambda arg1, arg2: arg1 + arg2

my_sum = user_sum(2, 2)
print(my_sum)

# ----------------------------------------------------------------#
#   三元表达式
# ----------------------------------------------------------------#
a, b = 1, 2
r = a if a > b else b
print(r)

# ----------------------------------------------------------------#
#   map(func, list),对后面输入的list分别执行前面的函数(数学的映射)
# ----------------------------------------------------------------#

myListMap1 = [1, 2, 3, 4]
myNewListMap1 = map(lambda x: x ** 2, myListMap1)  # 返回为map类型的数据结构
print(type(myNewListMap1))
print('myNewListMap1:', list(myNewListMap1))    # 转换为list


# 两个或者多个参数的map函数的使用
# 当两个参数种元素的个数不相同的时候会截断
myListMap2 = [1, 2, 3, 4]
myNewListMap2 = map(lambda x, y: x + y, myListMap1, myListMap2)
print('myNewListMap2:', list(myNewListMap2))


# ----------------------------------------------------------------#
#   reduce(func, list)连续计算,连续调用lambda表达式
# ----------------------------------------------------------------#

myListReduce = [1, 2, 3, 4]
# 把list中的值一个一个放进lambda中
r = reduce(lambda x, y: x + y, myListReduce)
print(r)

# 对第一个函数参数进行初始化
r = reduce(lambda x, y: x + y, myListReduce, 10)
print(r)

# filter
myListFilter = [3, 5, 6, 7, 8, 9, 10]
myNewListFilter = filter(lambda x: x % 2 == 1, myListFilter)
print('myNewListFilter:', list(myNewListFilter))

list_x = [1, 1, 0, 0]
filter_list = filter(lambda x: True if x == 1 else False, list_x)
print(list(filter_list))

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in Lambda-Ausdrücke in Python (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen