詳解Python中for循環(huán)的定義迭代方法
Python的 for 循環(huán)
Python 是基于集合的迭代。
for <var> in <iterable>: # <iterable>是對(duì)象的集合——例如,列表或元組。 <statement(s)> # 循環(huán)體 a = ['曹操', '孫権', '劉備'] for i in a: print(i)
輸出:
曹操
孫権
劉備
可迭代對(duì)象 ,可以被傳遞給內(nèi)置的 Python 函數(shù) iter() 處理,返回做迭代器
iter('曹操孫権') # String <str_iterator object at 0x036E2750> iter(['曹操', '孫権', '劉備']) # List <list_iterator object at 0x036E27D0> iter(('曹操', '孫権', '劉備')) # Tuple <tuple_iterator object at 0x036E27F0> iter({'曹操', '孫権', '劉備'}) # Set <set_iterator object at 0x036DEA08> iter({'曹操': 1, '孫権': 2, '劉備': 3}) # Dict <dict_keyiterator object at 0x036DD990>
不可以迭代的對(duì)象
iter(1) # Integer Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable iter(1.1) # Float Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object is not iterable iter(len) # Built-in function Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'builtin_function_or_method' object is not iterable
迭代器,是一個(gè)值生產(chǎn)者,從其關(guān)聯(lián)的可迭代對(duì)象中產(chǎn)生連續(xù)的值。內(nèi)置函數(shù) next() 用于從迭代器中獲取下一個(gè)值。
list_ = ['曹操', '孫権', '劉備'] itr = iter(list_ ) itr <list_iterator object at 0x031EFD10> next(itr) '曹操' next(itr) '孫権' next(itr) '劉備'
使用內(nèi)置 list()、tuple() 和 set() 函數(shù)一次從迭代器中獲取所有值。
list_ = ['曹操', '孫権', '劉備'] itr = iter(list_) list(itr) ['曹操', '孫権', '劉備'] itr = iter(list_) tuple(itr) ('曹操', '孫権', '劉備') itr = iter(list_) set(itr) {'劉備', '曹操', '孫権'}
遍歷字典
字典的遍歷循環(huán),循環(huán)變量被分配給字典的鍵。
d = {'曹操': 1, '孫権': 2, '劉備': 3} for k in d: print(k)
輸出:
曹操
孫権
劉備
訪問字典值的操作
for k in d: print(d[k]) #輸出: #1 #2 #3 for v in d.values(): print(v) #輸出: #1 #2 #3
同時(shí)遍歷字典的鍵和值。循環(huán)變量 for 不限于單個(gè)變量,可以是元組。
i, j = (1, 2) print(i, j) 1 2 for i, j in [(1, 2), (3, 4), (5, 6)]: print(i, j)
輸出:
1 2
3 4
5 6
字典方法 items() 有效地將鍵/值對(duì)列表作為元組返回。
d = {'曹操': 1, '孫権': 2, '劉備': 3} d.items() dict_items([('曹操', 1), ('孫権', 2), ('劉備', 3)]) d = {'曹操': 1, '孫権': 2, '劉備': 3} for k, v in d.items(): print('k =', k, ', v =', v)
輸出:
k = 曹操 , v = 1
k = 孫権 , v = 2
k = 劉備 , v = 3
range()功能
Python 提供了內(nèi)置range()函數(shù),返回一個(gè)產(chǎn)生整數(shù)序列的迭代。
range(<end>)返回一個(gè)產(chǎn)生以0開頭的整數(shù)的迭代,直到<end>但不包括<end>數(shù)值
x = range(5) x range(0, 5) type(x) <class 'range'>
range對(duì)象是可迭代的,所以可以通過for循環(huán)遍歷它們來獲取值。
for n in x: print(n)
輸出:
0
1
2
3
4
list() 、tuple() 一次獲取所有的循環(huán)遍歷的值。
list(x) [0, 1, 2, 3, 4] tuple(x) (0, 1, 2, 3, 4)
range(<start>, <end>, <step>)返回一個(gè)迭代結(jié)果。
list(range(5, 20, 3)) [5, 8, 11, 14, 17] # 默認(rèn)為1 list(range(5, 10, 1)) [5, 6, 7, 8, 9] list(range(5, 10)) [5, 6, 7, 8, 9] # 數(shù)值范圍必須是可以正向迭代 list(range(-5, 5)) [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4] list(range(5, -5)) [] list(range(5, -5, -1)) [5, 4, 3, 2, 1, 0, -1, -2, -3, -4]
break語句 和continue語句
break 完全終止循環(huán)。
for i in ['曹操', '孫権', '劉備']: if '孫' in i: break print(i)
輸出:
曹操
continue 終止當(dāng)前迭代并進(jìn)行下一次迭代。
for i in ['曹操', '孫権', '劉備']: if '孫' in i: continue print(i)
輸出:
曹操
劉備
else語句
for 循環(huán)的子句 else,類似于 while 循環(huán)的使用。
for i in ['曹操', '孫権', '劉備']: print(i) else: print('結(jié)束。')
輸出:
曹操
孫権
劉備
結(jié)束。
else 如果列表被一條語句 break,則不會(huì)執(zhí)行。
for i in ['曹操', '孫権', '劉備']: if i == '孫権': break print(i) else: print('結(jié)束。')
輸出:
曹操
到此這篇關(guān)于詳解Python中for循環(huán)的定義迭代方法的文章就介紹到這了,更多相關(guān)Python for循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python計(jì)算最大優(yōu)先級(jí)隊(duì)列實(shí)例
python計(jì)算最大優(yōu)先級(jí)隊(duì)列實(shí)例,大家參考使用吧2013-12-12Python實(shí)現(xiàn)多線程并發(fā)請(qǐng)求測(cè)試的腳本
這篇文章主要為大家分享了一個(gè)Python實(shí)現(xiàn)多線程并發(fā)請(qǐng)求測(cè)試的腳本,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,需要的小伙伴可以了解一下2023-06-06python中如何使用xml.dom.minidom模塊讀取解析xml文件
xml.dom.minidom模塊應(yīng)該是內(nèi)置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧2023-10-10Python實(shí)現(xiàn)文件信息進(jìn)行合并實(shí)例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)文件信息進(jìn)行合并實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01selenium+python實(shí)現(xiàn)自動(dòng)登錄腳本
下面小編就為大家分享一篇selenium+python實(shí)現(xiàn)自動(dòng)登錄腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python進(jìn)階之列表推導(dǎo)與生成器表達(dá)式詳解
這篇文章主要為大家詳細(xì)介紹了Python中列表推導(dǎo)與生成器表達(dá)式的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2023-04-04基于Python實(shí)現(xiàn)一鍵獲取電腦瀏覽器的賬號(hào)密碼
發(fā)現(xiàn)很多人在學(xué)校圖書館喜歡用電腦占座,而且出去的時(shí)候經(jīng)常不鎖屏,為了讓大家養(yǎng)成良好的習(xí)慣,本文將分享一個(gè)小程序,可以快速獲取你存儲(chǔ)在電腦瀏覽器中的所有賬號(hào)和密碼,感興趣的可以了解一下2022-05-05