欢迎访问宙启技术站
智能推送

Python中的map函数用法示例

发布时间:2023-08-09 20:07:08

在Python中,map()函数是一个内建函数,它可以接受一个函数和一个Iterable对象作为参数,并将该函数应用于Iterable对象中的每个元素,返回一个新的迭代器对象。

下面是一些使用map()函数的示例:

1. 将列表中的每个元素取平方:

nums = [1, 2, 3, 4, 5]
squared_nums = list(map(lambda x: x**2, nums))
print(squared_nums)  # 输出 [1, 4, 9, 16, 25]

2. 将字符串列表中的每个字符串转换为大写:

names = ["alice", "bob", "charlie"]
upper_names = list(map(str.upper, names))
print(upper_names)  # 输出 ['ALICE', 'BOB', 'CHARLIE']

3. 将两个列表中的元素一一配对相加:

nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
sums = list(map(lambda x, y: x+y, nums1, nums2))
print(sums)  # 输出 [5, 7, 9]

4. 将整数列表中的每个整数转换为对应的二进制字符串:

nums = [10, 20, 30]
binary_strs = list(map(bin, nums))
print(binary_strs)  # 输出 ['0b1010', '0b10100', '0b11110']

5. 将字符串列表中的每个字符串按照字符个数从小到大进行排序:

names = ["alice", "bob", "charlie"]
sorted_names = list(map(sorted, names))
print(sorted_names)  # 输出 [['a', 'c', 'e', 'i', 'l'], ['b', 'o', 'b'], ['a', 'c', 'e', 'h', 'i', 'l', 'r']]

需要注意的是,map()函数返回的是一个迭代器对象,如果需要使用结果可以将其转换为列表,如上面示例中的使用了list(map(...))

另外,还要提醒的一点是,map()函数只能一次处理一个Iterable对象中的元素,如果要处理多个Iterable对象,需要使用额外的技巧,如示例中的第3个示例中使用了lambda函数来实现相加。

最后,需要注意的是,Python中还有另一个类似的函数叫做filter(),它也接受一个函数和一个Iterable对象作为参数,并根据函数的返回值过滤出满足条件的元素,返回一个新的迭代器对象。与map()函数的不同之处在于,filter()函数会根据函数的返回值是True还是False来决定是否保留元素,而map()函数则会对每个元素应用函数并返回结果。