Python map()和reduce()清洗数据

  • Post category:Python

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