您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python中for循環怎么定義迭代”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python中for循環怎么定義迭代”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
Python 是基于集合的迭代。
for <var> in <iterable>: # <iterable>是對象的集合——例如,列表或元組。 <statement(s)> # 循環體 a = ['曹操', '孫権', '劉備'] for i in a: print(i)
輸出:
曹操
孫権
劉備
可迭代對象 ,可以被傳遞給內置的 Python 函數 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>
不可以迭代的對象
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
迭代器,是一個值生產者,從其關聯的可迭代對象中產生連續的值。內置函數 next() 用于從迭代器中獲取下一個值。
list_ = ['曹操', '孫権', '劉備'] itr = iter(list_ ) itr <list_iterator object at 0x031EFD10> next(itr) '曹操' next(itr) '孫権' next(itr) '劉備'
使用內置 list()、tuple() 和 set() 函數一次從迭代器中獲取所有值。
list_ = ['曹操', '孫権', '劉備'] itr = iter(list_) list(itr) ['曹操', '孫権', '劉備'] itr = iter(list_) tuple(itr) ('曹操', '孫権', '劉備') itr = iter(list_) set(itr) {'劉備', '曹操', '孫権'}
字典的遍歷循環,循環變量被分配給字典的鍵。
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
同時遍歷字典的鍵和值。循環變量 for 不限于單個變量,可以是元組。
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() 有效地將鍵/值對列表作為元組返回。
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
Python 提供了內置range()函數,返回一個產生整數序列的迭代。
range(<end>)返回一個產生以0開頭的整數的迭代,直到<end>但不包括<end>數值
x = range(5) x range(0, 5) type(x) <class 'range'>
range對象是可迭代的,所以可以通過for循環遍歷它們來獲取值。
for n in x: print(n)
輸出:
0
1
2
3
4
list() 、tuple() 一次獲取所有的循環遍歷的值。
list(x) [0, 1, 2, 3, 4] tuple(x) (0, 1, 2, 3, 4)
range(<start>, <end>, <step>)返回一個迭代結果。
list(range(5, 20, 3)) [5, 8, 11, 14, 17] # 默認為1 list(range(5, 10, 1)) [5, 6, 7, 8, 9] list(range(5, 10)) [5, 6, 7, 8, 9] # 數值范圍必須是可以正向迭代 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 完全終止循環。
for i in ['曹操', '孫権', '劉備']: if '孫' in i: break print(i)
輸出:
曹操
continue 終止當前迭代并進行下一次迭代。
for i in ['曹操', '孫権', '劉備']: if '孫' in i: continue print(i)
輸出:
曹操
劉備
for 循環的子句 else,類似于 while 循環的使用。
for i in ['曹操', '孫権', '劉備']: print(i) else: print('結束。')
輸出:
曹操
孫権
劉備
結束。
else 如果列表被一條語句 break,則不會執行。
for i in ['曹操', '孫権', '劉備']: if i == '孫権': break print(i) else: print('結束。')
輸出:
曹操
讀到這里,這篇“Python中for循環怎么定義迭代”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。