专业编程基础技术教程

网站首页 > 基础教程 正文

python:enumerate()函数和zip()函数

ccvgpt 2024-08-06 12:39:30 基础教程 9 ℃

enumerate()函数可以输出索引和值的元组

list01=[12,45,8,9,6]

python:enumerate()函数和zip()函数

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)

最近发表
标签列表