从一个简单的 for 循环开始,然后探索使用 zip 和 zip_longest 函数等。
在 Python 中循环访问列表
最简单的方法是使用 for 循环遍历列表的每个元素。
url=['www','6yj','net'] for i in url: print(i)
另一种方法是使用索引访问列表中的每个元素。
url=['www','6yhj','net'] n=len(url) for i in range(n): print(url[i])
在 Python 中循环访问多个列表
当我们访问存储在不同列表中有关联的数据时,需要迭代访问多个列表。
可以使用基于索引的迭代。使用相同的索引从每个列表中获取一个元素,得到成对数据。
xs=['小张','小王','小李'] cj=[96,90,98] n=len(xs) for i in range(n): stu=xs[i] score=cj[i] print(stu,"的成绩是:",score)
使用 zip() 函数循环访问多个列表
在 Python 中迭代多个列表有一个更简单的替代方法:zip()函数。这个函数,允许并排迭代两个或多个列表。
xs=['小张','小王','小李'] cj=[96,90,98] for stu,score in zip(xs,cj): print(stu,"的成绩是:",score)
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
使用 zip_longest() 函数访问多个列表
如果每个列表中具有不同数量的元素,zip() 函数是按照最短列表中的元素进行迭代。例
xs=['小张','小王'] nl=[13,12,15] cj=[96,90,98] for stu,age,score in zip(xs,nl,cj): print(f"{stu}今年{age}岁,成绩是:{score}") #输出: #小张今年13岁,成绩是:96 #小王今年12岁,成绩是:90
如果要访问所有列表中的所有元素,可以改用 zip_longest() 函数。该函数访问所有元素,甚至是最长列表中的元素。
from itertools import zip_longest xs=['小张','小王'] nl=[13,12,15] cj=[96] for stu,age,score in zip_longest(xs,nl,cj): print(f"{stu}今年{age}岁,成绩是:{score}") #输出: #小张今年13岁,成绩是:96 #小王今年12岁,成绩是:None #None今年15岁,成绩是:None
正如我们所看到的,当你需要在 Python 中循环访问多个列表时,如果希望以最短列表长度为标准,请使用 zip() 函数;如果要访问所有列表中的每个元素,请使用 zip_longest()函数。
标签: python基础