欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python中for循環(huán)的定義迭代方法

 更新時(shí)間:2022年04月30日 09:56:12   作者:Mr數(shù)據(jù)楊  
for循環(huán)用于迭代序列(即列表、元組、字典、集合或字符串)。for 語句的寫法如從對(duì)象開始按順序給變量賦值,元素個(gè)數(shù)重復(fù)這個(gè)過程。對(duì)象可以是列表(數(shù)組)、元組、字符串等。本文將詳細(xì)講解Python中for定義迭代方法詳解,需要的可以了解一下

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)文章

最新評(píng)論