Python 高阶映射和过滤函数是 Python 语言中非常强大的函数,使用它们可以非常方便地处理列表、元组、字典等数据结构,从而大大简化代码的编写。下面我们详细讲解 Python 高阶映射和过滤函数的使用方法。
map函数
map()函数可以将一个函数作用于一个序列(如列表)的每一个元素上,返回一个新的序列,新序列中的每个元素都是原序列中对应元素应用函数后得到的结果。函数原型如下:
map(function, iterable, ...)
其中,function 为自定义函数或系统函数,iterable 为序列对象,...为传递给 function 的参数。
示例1
我们来看一个简单的例子,将列表中的每个元素乘以2:
def double(x):
return x * 2
lst = [1, 2, 3, 4, 5]
result = list(map(double, lst))
print(result)
输出结果为:
[2, 4, 6, 8, 10]
示例2
我们使用 lambda 表达式来写一个简单的例子,将列表中的每个元素转成字符串,并在每个字符串前加上一个标识:
lst = [1, 2, 3, 4, 5]
result = list(map(lambda x: 'item' + str(x), lst))
print(result)
输出结果为:
['item1', 'item2', 'item3', 'item4', 'item5']
filter函数
filter()函数可以对序列(如列表)中的元素进行筛选,返回一个新序列,新序列中元素是原序列中筛选出来的元素。函数原型如下:
filter(function, iterable)
其中,function 为自定义函数或系统函数,iterable 为序列对象。
示例1
我们来看一个简单的例子,筛选出列表中所有的奇数:
def is_odd(x):
return x%2 == 1
lst = [1, 2, 3, 4, 5]
result = list(filter(is_odd, lst))
print(result)
输出结果为:
[1, 3, 5]
示例2
我们使用 lambda 表达式来写一个简单的例子,筛选出列表中所有大于3的元素:
lst = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x > 3, lst))
print(result)
输出结果为:
[4, 5]
以上就是 Python 高阶映射和过滤函数的详细讲解和使用示例。需要注意的是,map()和filter()函数返回的是可迭代对象,需要转换成列表或元组才能输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 高阶映射和过滤函数 - Python技术站