一学就废|Python基础碎片,map函数

        map()函数用于将给定函数应用于可迭代对象的每个项目,例如列表或元组,并返回一个 map 对象(它是一个迭代器)。

        以下示例使用 map()函数将字符串列表转换为整数列表。我们使用内置的 int 函数将列表 s 中的每个字符串转换为整数。map()函数负责将 int()应用于每个元素

s = ['1', '2', '3', '4']
res = map(int, s)
print(list(res))

[1, 2, 3, 4]

将 map 对象转换为列表

        默认情况下,map()函数返回一个 map 对象,它是一个迭代器。在许多情况下,我们需要将此迭代器转换为列表才能处理。

        以下示例将给定列表中的每个元素都x2。

  • map()函数返回一个迭代器,然后我们使用 list()将其转换为列表。
  • 用自定义函数将列表 a 中的每个值加倍,结果被映射并转换为列表以便于显示。
a = [1, 2, 3, 4]

def double(val):
  return val*2

res = list(map(double, a))
print(res)

[2, 4, 6, 8]

map结合lambda函数使用

        我们可以使用 lambda 函数而不是自定义函数来使代码更短、更易读。

a = [1, 2, 3, 4]

res = list(map(lambda x: x * 2, a))
print(res)

[2, 4, 6, 8]

与多个可迭代对象一起使用

        如果我们应用的函数需要多个参数,我们可以将 map()与多个可迭代对象一起使用。

        以下示例,map()接受两个可迭代对象(a 和 b)并应用 lambda 函数从两个列表中添加相应的元素。

a = [1, 2, 3]
b = [4, 5, 6]
res = map(lambda x, y: x + y, a, b)
print(list(res))

[5, 7, 9]

更多示例

转换为大写

        以下示例展示了我们如何使用 map()将字符串列表转换为大写。

fruits = ['apple', 'banana', 'cherry']
res = map(str.upper, fruits)
print(list(res))

['APPLE', 'BANANA', 'CHERRY']

        以上示例使用 map()将 str. uper 方法应用于列表水果中的每个元素。结果是每个水果名称的大写版本列表。

从字符串中提取第一个字符

        我们使用 map()从列表中的每个字符串中提取第一个字符。

words = ['apple', 'banana', 'cherry']
res = map(lambda s: s[0], words)
print(list(res))

['a', 'b', 'c']

        lambda 函数 s: s [0] 从列表单词中的每个字符串中提取第一个字符。map()将此 lambda 函数应用于每个元素,从而生成每个单词的第一个字符的列表。

从字符串中删除空格

        我们可以使用 map()从列表中的每个字符串中删除前导和尾随空格。

s = ['  hello  ', '  world ', ' python  ']
res = map(str.strip, s)
print(list(res))

['hello', 'world', 'python']

        str. strib 方法从列表字符串中的每个字符串中删除前导和尾随空格。map()函数将 str.strib 应用于每个元素并返回修剪字符串的列表。

从摄氏度计算华氏度

        以下示例我们使用 map()将温度列表从摄氏度转换为华氏度。

celsius = [0, 20, 37, 100]
fahrenheit = map(lambda c: (c * 9/5) + 32, celsius)
print(list(fahrenheit))

[32.0, 68.0, 98.6, 212.0]

        lambda 函数 c:(c*9/5)+32 使用标准公式将每个摄氏度的温度转换为华氏度。map()函数将此转换应用于列表中摄氏度的所有项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码路刺客

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值