当前位置: 首页 > 科技观察

快速掌握Python中的循环技术

时间:2023-03-16 10:16:45 科技观察

Python最基本的循环技术是for语句,它按照它们在序列中出现的顺序迭代任何序列(列表或字符串)中的项目。本文将全面介绍for循环的技术和实际用法。1、使用enumerate()循环遍历整个序列在循环遍历一个序列(如列表、元组、范围对象、字符串)时,可以使用enumerate()函数同时检索位置索引和对应的值。(1)使用enumerate()遍历列表:例1:使用enumerate()函数遍历列表,返回一个包含可迭代对象中的计数和值的元组。一般来说,从0开始计数。colors=['red','green','blue']forcolorinumerate(colors):print(color)#Output:(0,'red')(1,'green')(2,'blue')Example2:count从5开始循环迭代器。colors=['red','green','blue']forcolorinenumerate(colors,5):print(color)'''Output:(5,'red')(6,'green')(7,'blue')'''(2)使用enumerate()遍历字符串:示例:使用enumerate()函数遍历字符串将返回一个元组包含可迭代的计数和值。一般来说,从0开始计数。s='python'foriinenumerate(s):print(i)'''#Output:(0,'p')(1,'y')(2,'t')(3,'h')(4,'o')(5,'n')'''2.使用zip()函数循环两个或多个序列要同时循环两个或多个序列,使用zip()函数对条目进行配对。(1)使用zip()循环两个相同长度的序列的例子:num=[1,2,3]colors=['red','blue','green']foriinzip(num,colors):print(i)'''Output:(1,'red')(2,'blue')(3,'green')''(2)使用zip()循环遍历两个不同长度的序列如果你使用zip()来遍历两个长度不等的序列,意思是当最短的iterable遍历完就停止。示例:colors=['red','green','blue']num=[1,2,3,4,5,6,7,8,9,10]foriinzip(colors,num):print(i)'''Output:('red',1)('green',2)('blue',3)'''(3)使用zip()循环两个或多个序列:示例:colors=['red','apple','three']num=[1,2,3]alp=['a','b','c']foriinzip(colors,num,alp):print(i)'''Output:('red',1,'a')('apple',2,'b')('three',3,'c')'''3.itertools.zip_longest()创建一个An每个可迭代对象中聚合元素的迭代器。如果iterable的长度不均匀,则fillvalue会填充缺失值。迭代一直持续到最长的迭代耗尽。使用itertools.zip_longest()循环遍历两个不同长度的序列。示例1:如果未指定fillvalue,则默认为None。fromitertoolsimportzip_longestcolors=['red','apple','three']num=[1,2,3,4,5]foriinzip_longest(colors,num):print(i)'''输出:('red',1)('apple',2)('three',3)(None,4)(None,5)'''示例2:指定填充值。fromitertoolsimportzip_longestcolors=['red','apple','three']num=[1,2,3,4,5]foriinzip_longest(colors,num,fillvalue='z'):print(i)'''输出:('红',1)('苹果',2)('三',3)('z',4)('z',5)'''4。在排序顺序中使用sorted()函数循环序列sorted():从iterable中的项目返回一个新的排序列表。示例:1使用sorted()函数按排序(升序)遍历一个序列(列表)。num=[10,5,20,25,30,40,35]foriinsorted(num):print(i)'''Output:5102025303540'''示例2:使用sorted()函数遍历sorted中的序列(降序)(列表)。num=[10,5,20,25,30,40,35]foriinsorted(num,reverse=True):print(i)'''Output:4035302520105'''示例3:使用sorted()函数进行排序by(升序)遍历字典。默认情况下,它将对字典中的键进行排序。d={'f':1,'b':4,'a':3,'e':9,'c':2}foriinserted(d.items()):print(i)#Output:('a',3)('b',4)('c',2)('e',9)('f',1)示例4:使用sorted函数按排序顺序循环字典。使用sorted函数中的key参数根据字典的值对字典进行排序。d={'f':1,'b':4,'a':3,'e':9,'c':2}#sortingbyvaluesinthedictionaryforiinsorted(d.items(),key=lambdaitem:item[1]):print(i)#Output:('f',1)('c',2)('a',3)('b',4)('e',9)5.使用reversed()函数遍历序列reversed(seq):返回一个反向迭代器。seq必须是具有__reversed__()方法或支持序列协议(__len__()方法和__getitem__()方法,参数从0开始)的对象。示例:反向循环一个序列,然后调用reversed()函数。colors=['red','green','blue','yellow']foriinreversed(colors):print(i)'''输出:yellowbluegreenred'''6。遍历字典遍历字典时,可以使用items()方法同时检索键和对应的值。示例:d={'a':1,'b':2,'c':3}fork,vind.items():print(k,v)#Output:a1b2c37。在遍历时修改集合在修改集合的同时修改集合的代码可能很难正确执行。相反,遍历集合的副本或创建新集合通常更简单。策略1:遍历一个副本如果你想在迭代时删除字典中的项目,那么遍历字典的一个副本:d={'a':1,'b':2,'c':3}fork,vind.copy().items():ifv%2==0:deld[k]print(d)#Output:{'a':1,'c':3}策略二:新建一个集合d={'a':1,'b':2,'c':3}d1={}fork,vind.items():ifv%2!=0:d1[k]=vprint(d1)#Output:{'a':1,'c':3}print(d)#Output:{'a':1,'b':2,'c':3}英文原文链接:https://medium.com/analytics-vidhya/looping-techniques-in-python-3bbf907b8dfa