Python 中 map() zip() list() 函数的介绍

map()

map(function , iterable, ....) : 依次将函数function作用在可迭代的list上,并返回对应的函数返回值,组成新的list(python 2.x) 或者迭代器(python 3.x)。

注意:map() 并不会改变iterable 而是会产生一个新的iterable,且iterable 中的元素可以式任意的类型,只要function可以处理这个类型即可。当具有多个iterable时,是表明其分别是function的参数,而不是说分别作用在各个iterable 上并返回结果。如果iterable的个数和function的个数对不上,则会报错。

def fun1(x):
    return x * x
def fun2(x, y):
    return x * y
data1 = [1,2,3]
data2 = [4,5,6]
m1 = map(fun1, data1)	# fun1 只有一个参数,如果输入多个data则会报错
print(m1)				# python 3.x 返回的是 迭代器
print(list(m1))			# 迭代器转换为list	

m2 = map(fun2, data1, data2)	# data1 和 data2 分别是fun2的两个可迭代的参数
print(m2)			
print(list(m2))	

>> <map object at 0x7f95c7b72290>
>> [1, 4, 9]

>><map object at 0x7fe3a7591290>
[4, 10, 18]

zip()

zip(iterable,...) : 将各个iterable中的对应的各个元素组合成元组形式,并返回列表(python 2.x) 或者zip对象/元组迭代器(python 3.x),即可以通过next方法获取迭代器的下一个元素。

注意: zip() 不会改变原来的iterable,而是会产生新的值;当各个iterable的长度不一致时,以最短长度为标准,大于最短长度的元素将不会被组合进元组中;iterable可以是各种类型,列表,元组,字典,集合,字符串等都是可以的;利用 ***** 号操作符,也可以将元组解压。

data1 = [1,2,3]
data2 = [4,5,6,7,8]
m1 = zip(data1, data2)

print(m1)
print(list(m1))
print(*m1)			# 解压zip,和上面的list()有点类似的功能

>> <zip object at 0x7fcffad42410>
>> [(1, 4), (2, 5), (3, 6)]
>> (1, 4), (2, 5), (3, 6)

list()

list( ) : 将 字符串,列表,元组,字典等转化为列表

data1 = "hello world"
data2 = ("1",2,3)
data3 = {"a":1,"b":2}
print(list(data1))
print(list(data2))
print(list(data3))			# 转换字典的key
print(list(data3.values()))	# 转换字典的value

>> ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>> ['1', 2, 3]
>> ['a', 'b']
>> [1, 2]https://www.runoob.com/python/att-list-list.html)
posted @ 2022-07-22 17:52  jacknie23  阅读(293)  评论(0编辑  收藏  举报