溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中for循環(huán)怎么定義迭代

發(fā)布時間:2022-05-05 13:41:41 來源:億速云 閱讀:137 作者:iii 欄目:開發(fā)技術

本文小編為大家詳細介紹“Python中for循環(huán)怎么定義迭代”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Python中for循環(huán)怎么定義迭代”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Python的 for 循環(huán)

Python 是基于集合的迭代。

for <var> in <iterable>: # <iterable>是對象的集合——例如,列表或元組。
    <statement(s)> # 循環(huán)體

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

迭代器,是一個值生產者,從其關聯的可迭代對象中產生連續(xù)的值。內置函數 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)
{'劉備', '曹操', '孫権'}

遍歷字典

字典的遍歷循環(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

同時遍歷字典的鍵和值。循環(huán)變量 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

range()功能

Python 提供了內置range()函數,返回一個產生整數序列的迭代。

Python中for循環(huán)怎么定義迭代

range(<end>)返回一個產生以0開頭的整數的迭代,直到<end>但不包括<end>數值

x = range(5)
x
range(0, 5)
type(x)
<class 'range'>

range對象是可迭代的,所以可以通過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>)返回一個迭代結果。

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語句 和continue語句

break 完全終止循環(huán)。

for i in ['曹操', '孫権', '劉備']:
    if '孫' in i:
        break
    print(i)

輸出:

曹操

continue 終止當前迭代并進行下一次迭代。

for i in ['曹操', '孫権', '劉備']:
    if '孫' in i:
        continue
    print(i)

輸出:

曹操
劉備

else語句

for 循環(huán)的子句 else,類似于 while 循環(huán)的使用。

for i in ['曹操', '孫権', '劉備']:
    print(i)
else:
    print('結束。')

輸出:

曹操
孫権
劉備
結束。

else 如果列表被一條語句 break,則不會執(zhí)行。

for i in ['曹操', '孫権', '劉備']:
    if i == '孫権':
        break
    print(i)
else:
    print('結束。')

輸出:

曹操

讀到這里,這篇“Python中for循環(huán)怎么定義迭代”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI