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(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( ) : 将 字符串,列表,元组,字典等转化为列表
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)