最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python常見的數(shù)據(jù)結(jié)構(gòu)的遍歷

 更新時(shí)間:2026年01月26日 09:35:50   作者:June bug  
文章介紹了Python中可迭代對(duì)象的定義和常見類型,包括字符串、列表、元組、字典、集合、range對(duì)象、文件對(duì)象等,還介紹了不能直接遍歷的類型,如數(shù)字、布爾值、None等,通過enumerate、zip和生成器等特殊方法,可以實(shí)現(xiàn)更復(fù)雜的遍歷操作,感興趣的朋友跟隨小編一起看看吧

嚴(yán)格來說,任何實(shí)現(xiàn)了__iter__方法或__getitem__方法的對(duì)象都可以被遍歷。
但是要注意,不是所有東西都適合遍歷,比如數(shù)字(整數(shù)、浮點(diǎn)數(shù))就不能直接遍歷,除非將其包裝成范圍或序列。
在Python中,我們通常說“可迭代對(duì)象”(Iterable)是指那些能夠一次返回一個(gè)元素的對(duì)象。例如,在for循環(huán)中,我們遍歷的就是可迭代對(duì)象。

不是所有東西都可以直接遍歷,但Python中大多數(shù)容器和序列都可以! 主要有以下幾類可遍歷的對(duì)象:

一、可以直接遍歷的常見類型:

1.字符串- 遍歷字符

s = "hello"
for char in s:  # 'h' → 'e' → 'l' → 'l' → 'o'
    print(char)

2.列表- 遍歷元素

lst = [1, 2, 3]
for item in lst:  # 1 → 2 → 3
    print(item)

3.元組- 遍歷元素

tup = (1, 2, 3)
for item in tup:  # 1 → 2 → 3
    print(item)

4.字典- 默認(rèn)遍歷鍵,也可遍歷值或鍵值對(duì)

d = {'a': 1, 'b': 2}
# 默認(rèn)遍歷鍵
for key in d:  # 'a' → 'b'
    print(key)
# 遍歷值
for value in d.values():  # 1 → 2
    print(value)
# 遍歷鍵值對(duì)
for key, value in d.items():  # ('a', 1) → ('b', 2)
    print(key, value)

5.集合- 遍歷元素(無序)

s = {1, 2, 3}
for item in s:  # 順序不確定
    print(item)

6.range對(duì)象- 遍歷數(shù)字序列

for i in range(5):  # 0 → 1 → 2 → 3 → 4
    print(i)

7.文件對(duì)象- 遍歷行

with open('file.txt') as f:
    for line in f:  # 一行一行讀取
        print(line)

二、需要特殊方法才能遍歷的:

8.enumerate對(duì)象- 同時(shí)獲取索引和值

s = "abc"
for i, char in enumerate(s):  # (0,'a') → (1,'b') → (2,'c')
    print(i, char)

9.zip對(duì)象- 同時(shí)遍歷多個(gè)序列

names = ["Alice", "Bob"]
ages = [25, 30]
for name, age in zip(names, ages):  # ("Alice",25) → ("Bob",30)
    print(name, age)

10.生成器- 惰性遍歷

# 生成器表達(dá)式
gen = (x*2 for x in range(3))  # 0 → 2 → 4
for num in gen:
    print(num)

三、不能直接遍歷的常見類型:

1.數(shù)字(整數(shù)、浮點(diǎn)數(shù))- ? 不能遍歷

num = 123
for digit in num:  # ? TypeError: 'int' object is not iterable
    print(digit)

需要先轉(zhuǎn)換:

num = 123
for digit in str(num):  # '1' → '2' → '3'
    print(digit)

2.布爾值- ? 不能遍歷

flag = True
for item in flag:  # ? TypeError: 'bool' object is not iterable
    print(item)

3.None- ? 不能遍歷

value = None
for item in value:  # ? TypeError: 'NoneType' object is not iterable
    print(item)

4.單個(gè)對(duì)象- ? 需要容器包裝

obj = "I'm a string, but..."
for char in obj:  # ? 可以,因?yàn)樽址强傻?
    print(char)
num = 42
for item in num:  # ? 不行
    print(item)
# 需要包裝成容器
for item in [num]:  # ? 可以
    print(item)

四、判斷是否能遍歷的技巧:

from collections.abc import Iterable
print(isinstance("hello", Iterable))  # ? True
print(isinstance([1,2,3], Iterable))  # ? True
print(isinstance(123, Iterable))      # ? False
print(isinstance(True, Iterable))     # ? False
print(isinstance(None, Iterable))     # ? False

總結(jié):

  • 可以遍歷的:字符串、列表、元組、字典、集合、range、文件等容器
  • 不能直接遍歷的:數(shù)字、布爾值、None等單一值
  • 核心原則:如果包含多個(gè)元素(序列、集合、映射),通常可以遍歷;如果是單個(gè)值,通常不能直接遍歷

記?。寒?dāng)你看到 for x in y: 時(shí),y 必須是一個(gè)可迭代對(duì)象(包含多個(gè)元素)。

到此這篇關(guān)于Python常見的數(shù)據(jù)結(jié)構(gòu)的遍歷的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)結(jié)構(gòu)的遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)登錄注冊(cè)常見問題解決方案

    SpringBoot實(shí)現(xiàn)登錄注冊(cè)常見問題解決方案

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)登錄注冊(cè)常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python實(shí)現(xiàn)大文件分割與合并

    python實(shí)現(xiàn)大文件分割與合并

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)大文件分割與合并,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 詳解Python中Sync與Async執(zhí)行速度快慢對(duì)比

    詳解Python中Sync與Async執(zhí)行速度快慢對(duì)比

    Python新的版本中支持了async/await語法, 很多文章都在說這種語法的實(shí)現(xiàn)代碼會(huì)變得很快, 但是這種快是有場景限制的。這篇文章將嘗試簡單的解釋為何Async的代碼在某些場景比Sync的代碼快
    2023-03-03
  • python開發(fā)的自動(dòng)化運(yùn)維工具ansible詳解

    python開發(fā)的自動(dòng)化運(yùn)維工具ansible詳解

    ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具,基于Python開發(fā),集合了眾多運(yùn)維工具(puppet、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能,這篇文章主要介紹了python開發(fā)的自動(dòng)化運(yùn)維工具ansible詳解,需要的朋友可以參考下
    2021-08-08
  • Python IDLE清空窗口的實(shí)例

    Python IDLE清空窗口的實(shí)例

    今天小編就為大家分享一篇Python IDLE清空窗口的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • PyTorch之圖像和Tensor填充的實(shí)例

    PyTorch之圖像和Tensor填充的實(shí)例

    今天小編就為大家分享一篇PyTorch之圖像和Tensor填充的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python內(nèi)置函數(shù)bin() oct()等實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    Python內(nèi)置函數(shù)bin() oct()等實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    使用Python內(nèi)置函數(shù):bin()、oct()、int()、hex()可實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換;先看Python官方文檔中對(duì)這幾個(gè)內(nèi)置函數(shù)的描述,需要了解的朋友可以參考下
    2012-12-12
  • Django模板Templates使用方法詳解

    Django模板Templates使用方法詳解

    這篇文章主要介紹了Django模板Templates使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python保存數(shù)據(jù)到文件的實(shí)現(xiàn)方式

    Python保存數(shù)據(jù)到文件的實(shí)現(xiàn)方式

    這篇文章主要介紹了Python保存數(shù)據(jù)到文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python 在字符串中加入變量的實(shí)例講解

    Python 在字符串中加入變量的實(shí)例講解

    下面小編就為大家分享一篇Python 在字符串中加入變量的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評(píng)論

怀化市| 龙州县| 合山市| 尼玛县| 贵溪市| 博罗县| 江门市| 澄迈县| 霍林郭勒市| 富源县| 宜宾县| 赤城县| 河间市| 旅游| 玉田县| 博客| 集贤县| 绍兴县| 偏关县| 沙湾县| 墨江| 攀枝花市| 高安市| 偏关县| 禄丰县| 郑州市| 新泰市| 田阳县| 舞阳县| 海盐县| 塔城市| 汉阴县| 美姑县| 丹东市| 柘荣县| 陇川县| 黄大仙区| 东明县| 公主岭市| 永仁县| 镇坪县|