您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何快速掌握Python中的循環(huán)技術(shù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何快速掌握Python中的循環(huán)技術(shù)”吧!
1. 使用enumerate()循環(huán)整個(gè)序列
當(dāng)循環(huán)遍歷一個(gè)序列(如列表、元組、范圍對(duì)象、字符串)時(shí),可以使用enumerate()函數(shù)同時(shí)檢索位置索引和相應(yīng)的值。
(1) 使用enumerate()遍歷列表:
示例1:
使用enumerate()函數(shù)遍歷列表,返回一個(gè)包含可迭代對(duì)象中的計(jì)數(shù)和值的元組。一般情況下,計(jì)數(shù)從0開始。
colors=['red','green','blue'] for color in enumerate(colors): print (color) #Output: (0, 'red') (1, 'green') (2, 'blue')
示例2:
count從5開始循環(huán)迭代器。
colors=['red','green','blue'] for color in enumerate(colors,5): print (color) ''' Output: (5, 'red') (6, 'green') (7, 'blue') '''
(2) 使用enumerate()循環(huán)字符串:
示例:
使用enumerate()函數(shù)遍歷字符串將返回一個(gè)包含可迭代對(duì)象的計(jì)數(shù)和值的元組。一般情況下,計(jì)數(shù)從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()函數(shù)循環(huán)兩個(gè)或多個(gè)序列
要同時(shí)循環(huán)兩個(gè)或多個(gè)序列,可以使用zip()函數(shù)對(duì)條目進(jìn)行配對(duì)。
(1) 使用zip()循環(huán)兩個(gè)相同長(zhǎng)度的序列
示例:
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()循環(huán)兩個(gè)不同長(zhǎng)度的序列
如果使用zip()遍歷兩個(gè)長(zhǎng)度不同的序列意味著當(dāng)最短的可迭代對(duì)象耗盡時(shí)停止。
示例:
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()循環(huán)兩個(gè)或多個(gè)序列:
示例:
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 ()
創(chuàng)建一個(gè)從每個(gè)可迭代對(duì)象中聚合元素的迭代器。如果可迭代對(duì)象的長(zhǎng)度不均勻,則用fillvalue填充缺失的值。迭代繼續(xù),直到最長(zhǎng)的可迭代對(duì)象耗盡。
使用itertools.zip_longest()循環(huán)兩個(gè)不同長(zhǎng)度的序列。
示例1:如果不指定fillvalue,則默認(rèn)為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()函數(shù)按已排序的順序循環(huán)序列
sorted():從iterable中的項(xiàng)返回一個(gè)新的排序列表。
示例:1使用sorted()函數(shù)按排序(升序)遍歷序列(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()函數(shù)按排序(降序)遍歷序列(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()函數(shù)按排序(升序)遍歷字典。默認(rèn)情況下,它將對(duì)字典中的鍵進(jìn)行排序。
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:使用已排序的函數(shù)按已排序的順序循環(huán)字典。在已排序的函數(shù)中使用key參數(shù),根據(jù)字典的值對(duì)其排序。
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()函數(shù)遍歷序列
reversed(seq):
返回反向迭代器。seq必須是一個(gè)具有__reversed__()方法或支持序列協(xié)議(__len__()方法和__getitem__()方法,參數(shù)從0開始)的對(duì)象。
示例:
反向循環(huán)一個(gè)序列,然后調(diào)用reversed()函數(shù)。
colors=['red','green','blue','yellow'] for i in reversed(colors): print (i) ''' Output: yellow blue green red '''
6. 循環(huán)查找字典
當(dāng)循環(huán)遍歷字典時(shí),可以使用items()方法同時(shí)檢索鍵和相應(yīng)的值。
示例:
d={'a':1,'b':2,'c':3} for k,v in d.items(): print (k,v) #Output: a 1 b 2 c 3
7. 在迭代時(shí)修改集合
在遍歷同一個(gè)集合時(shí)修改集合的代碼可能很難正確處理。相反,循環(huán)遍歷集合的副本或創(chuàng)建一個(gè)新集合通常更簡(jiǎn)單。
策略1:對(duì)副本進(jìn)行迭代
如果希望在迭代時(shí)刪除字典中的項(xiàng),則在字典的副本上進(jìn)行迭代:
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:創(chuàng)建一個(gè)新的集合
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}
感謝各位的閱讀,以上就是“如何快速掌握Python中的循環(huán)技術(shù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何快速掌握Python中的循環(huán)技術(shù)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。