云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

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

jxf315 2025-02-17 12:35:54 教程文章 24 ℃

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']

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

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

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

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

从字符串中删除空格

我们可以使用 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()函数将此转换应用于列表中摄氏度的所有项目。

Tags:

最近发表
标签列表