Python 内置函数 filter、reduce、map 等结合 lambda 的应用

lambda 是 Python 中的一个简单的匿名函数,常常和 Python 内置函数 filter、reduce、map 等结合使用,可以快速简便地完成一些操作。

  1. filter() 函数结合 lambda 的应用

filter() 函数可以用于过滤序列中不符合条件的元素,通常结合 lambda 函数使用,例如过滤出列表中的偶数:

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums) # [2, 4, 6, 8, 10]
  1. reduce() 函数结合 lambda 的应用

reduce() 函数可以用于对序列中的元素进行累积操作,通常结合 lambda 函数使用,例如求列表中所有元素的和:

from functools import reduce

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum = reduce(lambda x, y: x + y, nums)
print(sum) # 55
  1. map() 函数结合 lambda 的应用

map() 函数可以对序列中的元素进行操作,通常结合 lambda 函数使用,例如将列表中的元素都平方:

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squared_nums = list(map(lambda x: x ** 2, nums))
print(squared_nums) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

除了这些函数,还有一些 Python 内置函数可以结合 lambda 函数使用,例如 sorted() 函数可以对列表进行排序,也可以结合 lambda 函数指定排序规则:

words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=lambda x: x[1])
print(sorted_words) # ['date', 'cherry', 'banana', 'apple']

还有一些其他的函数,例如 zip() 函数可以将多个序列中的元素依次配对,enumerate() 函数可以将一个序列中的元素和它们的下标配对,这些函数也可以结合 lambda 函数使用。

结合 lambda 函数使用,zip() 函数可以快速将多个序列中的元素进行对应操作,enumerate() 函数可以快速遍历序列中的元素并获取它们的下标。下面是一个结合 lambda 函数使用的示例:

# zip() 函数结合 lambda 函数使用
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

result = list(map(lambda x, y, z: x + y + z, a, b, c))
print(result)  # 输出 [12, 15, 18]

# enumerate() 函数结合 lambda 函数使用
a = ['apple', 'banana', 'orange']

result = list(map(lambda x: x[0] + ': ' + x[1], enumerate(a)))
print(result)  # 输出 ['0: apple', '1: banana', '2: orange']

在上面的例子中,zip() 函数将三个列表中的元素依次配对,然后使用 lambda 函数将对应位置上的元素相加,得到了一个新的列表。enumerate() 函数遍历了列表 a 中的元素,并将它们的下标和元素配对,然后使用 lambda 函数将它们格式化为字符串。最后,使用 map() 函数将 lambda 函数应用到每个配对上,得到了一个新的列表。

你可能感兴趣的:(python)