快速掌握Python中的循环技术

Python的快速最基本的循环技术是for语句,它可以遍历任何序列(列表或字符串)中的掌握中项目,按照它们在序列中出现的循环顺序。本文将全面介绍for循环的技术技术以及实战用法。

1. 使用enumerate()循环整个序列

当循环遍历一个序列(如列表、快速元组、掌握中范围对象、循环字符串)时,技术可以使用enumerate()函数同时检索位置索引和相应的快速值。

(1) 使用enumerate()遍历列表:

示例1:

使用enumerate()函数遍历列表,掌握中返回一个包含可迭代对象中的循环计数和值的元组。一般情况下,技术计数从0开始。快速

colors=[red,掌握中green,blue] for color in enumerate(colors):     print (color) #Output: (0, red) (1, green) (2, blue) 

示例2:

count从5开始循环迭代器。

colors=[red,循环green,blue] for color in enumerate(colors,5):     print (color) Output: (5, red) (6, green) (7, blue) 

(2) 使用enumerate()循环字符串:

示例:

使用enumerate()函数遍历字符串将返回一个包含可迭代对象的计数和值的元组。一般情况下,计数从0开始。

s=python for i in enumerate(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] for i in zip(num, colors):     print(i) Output: (1, red) (2, blue) (3, green) 

(2) 使用zip()循环两个不同长度的序列

如果使用zip()遍历两个长度不同的序列意味着当最短的可迭代对象耗尽时停止。

示例:

colors=[red,green,blue] num=[1,2,3,4,5,6,7,8,9,10] for i in zip(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] for i in zip(colors,num,alp):     print (i) Output: (red, 1, a) (apple, 2, b) (three, 3, c) 

3. itertools.zip_longest ()

创建一个从每个可迭代对象中聚合元素的迭代器。如果可迭代对象的长度不均匀,则用fillvalue填充缺失的值。迭代继续,直到最长的可迭代对象耗尽。

使用itertools.zip_longest()循环两个不同长度的序列。

示例1:如果不指定fillvalue,则默认为None。

from itertools import zip_longest colors=[red,apple,three] num=[1,2,3,4,5] for i in zip_longest(colors,num):     print (i) Output: (red, 1) (apple, 2) (three, 3) (None, 4) (None, 5) 

示例2:指定fillvalue。

from itertools import zip_longest colors=[red,apple,three] num=[1,2,3,4,5] for i in zip_longest(colors,num,fillvalue=z):     print (i) Output: (red, 1) (apple, 2) (three, 3) (z, 4) (z, 5) 

4. 使用sorted()函数按已排序的顺序循环序列

sorted():从iterable中的项返回一个新的排序列表。

示例:1使用sorted()函数按排序(升序)遍历序列(list)。

num=[10,5,20,25,30,40,35] for i in sorted(num):     print (i) Output: 5 10 20 25 30 35 40 

示例2:使用sorted()函数按排序(降序)遍历序列(list)。

num=[10,5,20,25,30,40,35] for i in sorted(num,reverse=True):     print (i) Output: 40 35 30 25 20 10 5 

示例3:使用sorted()函数按排序(升序)遍历字典。默认情况下,高防服务器它将对字典中的键进行排序。

d={ f:1,b:4,a:3,e:9,c:2} for i in sorted(d.items()):     print (i) #Output: (a, 3) (b, 4) (c, 2) (e, 9) (f, 1) 

示例4:使用已排序的函数按已排序的顺序循环字典。在已排序的函数中使用key参数,根据字典的值对其排序。

d={ f:1,b:4,a:3,e:9,c:2} #sorting by values in the dictionary for i in sorted(d.items(),key=lambda item: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] for i in reversed(colors):     print (i) Output: yellow blue green red 

6. 循环查找字典

当循环遍历字典时,可以使用items()方法同时检索键和相应的值。

示例:

d={ a:1,b:2,c:3} for k,v in d.items():     print (k,v) #Output: a 1 b 2 c 3 

7. 在迭代时修改集合

在遍历同一个集合时修改集合的代码可能很难正确处理。相反,循环遍历集合的副本或创建一个新集合通常更简单。

策略1:对副本进行迭代

如果希望在迭代时删除字典中的项,则在字典的副本上进行迭代:

d={ a:1,b:2,c:3} for k,v in d.copy().items():     if v%2==0:         del d[k] print (d) #Output:{ a: 1, c: 3} 

策略2:创建一个新的网站模板集合

d={ a:1,b:2,c:3} d1={ } for k,v in d.items():     if v%2!=0:         d1[k]=v print (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

域名
上一篇:戴尔科技VxRail助力企业推动可持续IT发展
下一篇:光学数据中心:为什么它是未来数据中心的需要?