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

淺析python中的迭代與迭代對象

 更新時間:2018年10月08日 12:02:17   投稿:laozhang  
在本文總小編給大家整理了關(guān)于python之中的迭代與迭代對象的相關(guān)基礎(chǔ)知識點內(nèi)容,需要的朋友們學習下。

什么是python的迭代

如果給定一個list或tuple,我們可以通過for循環(huán)來遍歷這個list或tuple,這種遍歷我們稱為迭代(Iteration)。

(在Python中,迭代是通過for ... in來完成的)

Python的for循環(huán)抽象程度要高于C的for循環(huán),因為Python的for循環(huán)不僅可以用在list或tuple上,還可以作用在其他可迭代對象上。

(可以直接作用于for循環(huán)的對象統(tǒng)稱為可迭代對象(Iterable),如list、tuple、dict、set、str等。)

list這種數(shù)據(jù)類型雖然有下標,但很多其他數(shù)據(jù)類型是沒有下標的,但是,只要是python的可迭代對象,無論有無下標,都可以迭代,比如dict就可以迭代:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:...   print(key)
...
a
c
b

因為dict的存儲不是按照list的方式順序排列,所以,迭代出的結(jié)果順序很可能不一樣。

默認情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時迭代key和value,可以用for k, v in d.items()。

由于字符串也是可迭代對象,因此,也可以作用于for循環(huán):

>>> for ch in 'ABC':
...   print(ch)
...ABC

所以,當我們使用for循環(huán)時,只要作用于一個可迭代對象,for循環(huán)就可以正常運行,而我們不太關(guān)心該對象究竟是list還是其他數(shù)據(jù)類型。

那么,如何判斷一個對象是可迭代對象呢?方法是通過collections模塊的Iterable類型判斷:

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整數(shù)是否可迭代
False

最后一個小問題,如果要對list實現(xiàn)類似Java那樣的下標循環(huán)怎么辦?Python內(nèi)置的enumerate函數(shù)可以把一個list變成索引-元素對,這樣就可以在for循環(huán)中同時迭代索引和元素本身:

>>> for i, value in enumerate(['A', 'B', 'C']):
...   print(i, value)
...
0 A
1 B
2 C

上面的for循環(huán)里,同時引用了兩個變量,在Python里是很常見的,比如下面的代碼:

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...   print(x, y)
...
1 1
2 4
3 9

以上就是本篇文章所講述的所有內(nèi)容,這篇文章主要介紹了相關(guān)于python中迭代和迭代對象的知識,希望你能借助資料從而理解上述所說的內(nèi)容。希望我在這片文章所講述的內(nèi)容能夠?qū)δ阌兴鶐椭?,讓你學習python更加輕松,感謝大家對腳本之家的支持。

相關(guān)文章

  • Python開發(fā)的實用計算器完整實例

    Python開發(fā)的實用計算器完整實例

    這篇文章主要介紹了Python開發(fā)的實用計算器,結(jié)合完整實例形式分析了Python實現(xiàn)計算器四則運算、開方、取余等相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 使用rst2pdf實現(xiàn)將sphinx生成PDF

    使用rst2pdf實現(xiàn)將sphinx生成PDF

    這篇文章主要介紹了使用rst2pdf實現(xiàn)將sphinx生成PDF的相關(guān)資料,以及使用過程用遇到的錯誤的處理方法,非常的全面,需要的朋友可以參考下
    2016-06-06
  • Python繪制地理圖表可視化神器pyecharts

    Python繪制地理圖表可視化神器pyecharts

    這篇文章主要介紹了Python繪制地理圖表可視化神器pyecharts,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • python郵件中附加文字、html、圖片、附件實現(xiàn)方法

    python郵件中附加文字、html、圖片、附件實現(xiàn)方法

    在本篇文章里小編給大家整理了一篇關(guān)于python郵件中附加文字、html、圖片、附件實現(xiàn)方法,有興趣的朋友們跟著學習下。
    2021-01-01
  • 用python實現(xiàn)k近鄰算法的示例代碼

    用python實現(xiàn)k近鄰算法的示例代碼

    這篇文章主要介紹了用python實現(xiàn)k近鄰算法的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 如何用itertools解決無序排列組合的問題

    如何用itertools解決無序排列組合的問題

    下面小編就為大家?guī)硪黄绾斡胕tertools解決無序排列組合的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python環(huán)境下安裝使用異步任務(wù)隊列包Celery的基礎(chǔ)教程

    Python環(huán)境下安裝使用異步任務(wù)隊列包Celery的基礎(chǔ)教程

    這篇文章主要介紹了Python環(huán)境下安裝使用異步任務(wù)隊列包Celery的基礎(chǔ)教程,Celery的分布式任務(wù)管理適合用于服務(wù)器集群的管理和維護,需要的朋友可以參考下
    2016-05-05
  • python3.x?zip用法小結(jié)

    python3.x?zip用法小結(jié)

    這篇文章主要介紹了python3.x?zip用法詳解,通過一個簡單例子給大家詳細講解zip使用,結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Python使用monkey.patch_all()解決協(xié)程阻塞問題

    Python使用monkey.patch_all()解決協(xié)程阻塞問題

    這篇文章主要介紹了Python使用monkey.patch_all()解決協(xié)程阻塞問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 淺談python中的錯誤與異常

    淺談python中的錯誤與異常

    寫Python代碼的小伙伴不可避免地會遇到代碼執(zhí)行錯誤和異常,這次就來詳細的總結(jié)一下python中的錯誤和異常
    2021-06-06

最新評論