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)
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/276222.html