python基础之zip()函数的用法

zip函数的用法:
详情参考:菜鸟教程http://www.runoob.com/python/python-func-zip.html
注意!!!!!!!!!!!!!python2,python3的用法一样但是返回值不一样,python2返回的是一个列表,python3返回的是一个对象。

python2:

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组, 然后返回由这些元组组成的列表

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同, 利用 * 号操作符,可以将元组解压为列表。

python3:

zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象

这样做的好处是节约了不少的内存。如需展示列表,需手动 list() 转换。

下面针对python3进行测试:

语法: zip([iterable, ...])

a1 = [1,2,3,4]
b1 = [5,6,7,8]
c1 = [4,5,6,7,8,9,0]

zi = zip(a1,b1)                 #返回一个对象 <zip object at 0x7f71c0062788>

print(zi)

li = list(zi)                   # [(1, 5), (2, 6), (3, 7), (4, 8)]
print(li)

ziac = zip(a1,c1)
print(list(ziac))               # [(1, 4), (2, 5), (3, 6), (4, 7)]


a,b = zip(*li)                  # 与 zip 相反,zip(*) 可理解为解压

print(list(a))                  # [1, 2, 3, 4]
print(list(b))

ziabc = zip(a1,b1,c1)
print(list(ziabc))              # [(1, 5, 4), (2, 6, 5), (3, 7, 6), (4, 8, 7)]

利用zip()函数完成一个小测试:(一些公司在面试中可能会考察python基础)

假设有如下两个 list:a = ['a', 'b', 'c', 'd', 'e'],b = [1, 2, 3, 4, 5],

将 a 中的元素作为 key,b 中元素作为 value,将 a,b 合并为字典。

a = ['a', 'b', 'c', 'd', 'e']
b = [1, 2, 3, 4, 5]
print(dict(zip(a,b)))

是不是很简单!!!

猜你喜欢

转载自blog.csdn.net/cai_cai_cai_1992/article/details/83144450