enumerate():
用法:
- 接收一个可迭代对象作为参数,返回一个enumerate对象。
- enumerate多用于for循环中计数用他可以获取索引值。
- enumerate在字典中是枚举,列举的意思
话不多说来看看例子:
a = [1,2,3,4,5]
for i,q in enumerate(a)
print(i,a)
#结果为0,1 1,2 2,3 3,4 4,5 5,6
#其中i为索引q为值
那如果我们想让索引值从一开始而不是从零开始呢?或者是说从自己制定的位置开始呢?
给enumertae()函数加参数 start=索引:
a = [1,2,3,4,5]
for i q in enumerate(a,start = 1):
print(i,q)
#1,1 2,2 3,3 4,4 5,5 6,6
#也可以不用加start直接添加索引值就可以
zip():
用法:用于可迭代的对象作为参数将对象中对应的元素打包成一个元组返回对象
用列表生成zip对象:
a = [1,2,3]
b = [4,5,6]
c = [6,7,8]
d = [9,10,11,12]
zipped = zip(a,b)
print(zipped) #返回值为对象<zip object at 0x7f429b0e1288>
for i in zipped:
print(i)
#(1,4) (2,5) (3,6)
#两个列表可以的话三个和多个也是可以的:
zippen = zip(a,b,c)
for i in zippen:
print(i)
#(1,4,6) (2,5,7) (3,6,8)
那如果出现列表中元素个数不相同呢?
zippes = zip(a,d)
for i in zippes:
print(i)
#(1,9) (2,10) (3,11)
#当两列表元素个数元素不相同时返回的是元组个数和最小的列表元素个数相同
二维矩阵的转换:给zip后的对象加上*以后在进行zip函数可以返回二维矩阵式:
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b)
a1,a2 = zip(*zipped)
print(a1,a2)
#返回的值为:(1,2,3) (4,5,6)
zip相反可以理解为解压,返回二维矩阵式。