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()函数则会对每个元素应用函数并返回结果。
