enumerate()函数可以输出索引和值的元组
list01=[12,45,8,9,6]
for item in enumerate(list01):
#输出为索引和值的元组
print(item)
for item,ytem in enumerate(list01):
#取出索引和值
print(item,ytem)
练习:
'''
定义一个函数,用yield生成器实现索引和值的元组生成
'''
#写法一
def my_enumerate(lista):
mytuple=()
number=0
for itme in lista:
mytuple=(number,itme)
yield mytuple
number+=1
for item in my_enumerate(list01):
print(item)
#写法二
def my_enumerate(lista):
for itme in range(len(lista)):
yield (itme,lista[itme])
for item,y in my_enumerate(list01):
print(item,y)
.zip()函数:把多个对象的元素相对应位置合并成一个新的元组
1、
list01=["河北","山东","河南","天津"]
list02=[101,102,103,104]
list03=[11,12,13,14]
for itme in zip(list02,list01,list03):
print(itme)
2、tuple01=("xt","ls","wu")
tuple02=(1,2,3,4)
for itme in zip(tuple02,tuple01):
print(itme)
3、
dist01={"山东":104,"天津":105}
dist02={"河南":106,"北京":101}
for itme,ytme in zip(dist01,dist02):
print(itme,ytme)
'''
自定义函数my_zip实现合并功能
'''
def myzip(stagea,sageb):
for itme in range(len(stagea)):
yield (stagea[itme],sageb[itme])
for itme in myzip(list01,list02):
print(itme)
#实现多个列表的合并*args
def myzip2(*args):
lista=[]
for resor in args:
lista.append(len(resor))
count=min(lista)
#*元组形参元素最少的一个做循环迭代
for i in range(count):
listresor=[]
for itme in args:
listresor.append(itme[i])
yield tuple(listresor)
for itme in myzip2(list01, list02):
print(itme)