Python中的map()和reduce()是用于清洗数据的强大工具。map()函数将一个函数应用于可迭代的序列中的每个元素,然后返回一个新的列表,而reduce()函数则将一个函数应用于序列中的前两个元素,然后将结果与下一个元素组合,一直进行到整个序列被处理完毕。
map()函数使用攻略
语法
map(function, iterable, ...)
参数
- function: 在每个元素上执行的函数。
- iterable: 迭代器,可以是列表、元组、字典、集合、字符串等。
返回值
该函数返回一个迭代器,包含function对iterable中每个元素执行的结果。
示例
将列表中的每个元素加1
lst = [1, 2, 3, 4, 5]
new_lst = map(lambda x: x + 1, lst)
print(list(new_lst))
输出结果:
[2, 3, 4, 5, 6]
将字符串中的每个单词首字母转换为大写
s = "hello world"
new_s = map(lambda x: x.capitalize(), s.split())
print(" ".join(new_s))
输出结果:
Hello World
reduce()函数使用攻略
语法
reduce(function, sequence[, initial])
参数
- function: 需要一个有2个参数的函数,用于将序列的前2个元素组合在一起。
- sequence: 可迭代的序列。
- initial: 可选的,若有初始值,表示将初始值与序列中的元素组合。
返回值
该函数返回一个值,即将sequence中所有元素通过function合并后得到的结果值。
示例
计算列表中所有元素的和
from functools import reduce
lst = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, lst)
print(total)
输出结果:
15
计算字符串中出现次数最多的字符
from functools import reduce
s = "hello world"
most_common_char = reduce(lambda x, y: x if s.count(x) > s.count(y) else y, s)
print(most_common_char)
输出结果:
l