057 zip的使用
主要内容
zip的定义
zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包(pack)成一个个元组, 然后返回由这些元组组成的列表。 zip()函数定义如下: list1 = zip(iter1, iter2, ......) iter1为一个迭代对象 iter1, iter2, ......为多个迭代对象 功能等价于:
list1 = []
for i in range(min(len(iter1),len(iter2)…)):
list1.append((iter1[i],iter2[i]…))
给定两个列表a和b,将它们打包的结果存放入一个列表list1中:
a = [1,2,3,4,5,6]
b = [2,3,4,5,6,7]
c = zip(a,b)
print(c) #为了减少内存,zip() 返回的是一个对象。
list1 = list(c) #如需展示列表,需使用list() 进行转换
print(list1)
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
a = [1,2,3,4,5,6]
b = [2,3,4]
c = zip(a,b)
list1 = list(c)
print(list1)
2. zip对列表,元组,及字典的操作
a = [1,2,3,4,5,6]
b = [2,3,4,5,6,7]
list1 = [i * j for i, j in zip(a, b)]
print(list1)
a = (1,2,3,4,5,6)
b = (2,3,4,5,6,7)
list1 = [i * j for i, j in zip(a, b)]
print(list1)
a = {1:2, 2:3, 3:4, 4:5, 5:6, 6:7}
list1 = list(zip(a))
print(list1)
如果需要key-value都迭代,则zip的是字典.items()
a = {1:2, 2:3, 3:4, 4:5, 5:6, 6:7}
list1 = list(zip(a.items()))
print(list1)
如果需要key-value分别迭代,则zip的是字典.keys()和values()
a = {1:2, 2:3, 3:4, 4:5, 5:6, 6:7}
list1 = list(zip(a.keys(), a.values()))
print(list1)
3. 小结
OJ训练题
1、练22.2 欧耶欧耶 - ★
2、【入门】有0的数 - ★
3、【入门】统计4位的回文数 - ★
4、【入门】蝴蝶结 - ★★
5、练33.3 水仙花数 - ★★★