千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  掌握Python中的循环技术

掌握Python中的循环技术

来源:千锋教育
发布人:xqq
时间: 2023-11-09 12:48:05

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

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

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

示例1:

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

colors=['red','green','blue']

forcolorinenumerate(colors):

print(color)

#Output:

(0,'red')

(1,'green')

(2,'blue')

示例2:

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()遍历两个长度不同的序列意味着当最短的可迭代对象耗尽时停止。

示例:

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()

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

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

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

fromitertoolsimportzip_longest

colors=['red','apple','three']

num=[1,2,3,4,5]

foriinzip_longest(colors,num):

print(i)

'''

Output:

('red',1)

('apple',2)

('three',3)

(None,4)

(None,5)

'''

示例2:指定fillvalue。

fromitertoolsimportzip_longest

colors=['red','apple','three']

num=[1,2,3,4,5]

foriinzip_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]

foriinsorted(num):

print(i)

'''

Output:

5

10

20

25

30

35

40

'''

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

num=[10,5,20,25,30,40,35]

foriinsorted(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}

foriinsorted(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}

#sortingbyvaluesinthedictionary

foriinsorted(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)

'''

Output:

yellow

blue

green

red

'''

6.循环查找字典

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

示例:

d={'a':1,'b':2,'c':3}

fork,vind.items():

print(k,v)

#Output:

a1

b2

c3

7.在迭代时修改集合

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

策略1:对副本进行迭代

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

d={'a':1,'b':2,'c':3}

fork,vind.copy().items():

ifv%2==0:

deld[k]

print(d)

#Output:{'a':1,'c':3}

策略2:创建一个新的集合

d={'a':1,'b':2,'c':3}

d1={}

fork,vind.items():

ifv%2!=0:

d1[k]=v

print(d1)

#Output:{'a':1,'c':3}

print(d)

#Output:{'a':1,'b':2,'c':3}

以上内容为大家介绍了掌握Python中的循环技术,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python依赖安装失败怎么办

2023-11-09

python如何检测字符串是不是全为字母?

2023-11-09

python如何获取程序执行时间?

2023-11-09

最新文章NEW

python找不到指定模块怎么办

2023-11-09

python如何去空格和回车?

2023-11-09

python使用matplotlib绘图怎么在线上标注?

2023-11-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>