python迭代器

本篇將介紹Python的迭代,更多內(nèi)容請參考:Python學(xué)習(xí)指南

簡介

在Python中,如果給定一個(gè)list或者tuple,我們可以通過for循環(huán)來遍歷這個(gè)list或者tuple,這種遍歷我們稱為迭代(Iteration)
在Python中,迭代是for...in來完成的,而很多語言比如C或者Java,迭代list是通過下標(biāo)完成的,比如Java代碼:

for(i=0; i<list.length; i++){
    n = list[i]
} 

可以看出,Python的for循環(huán)抽象程度要高于Java的for循環(huán)
因?yàn)?,Python的for循環(huán)不僅可以用在list或tuple上,還可以用在任何可迭代對象上。
那么,可迭代對象有哪些呢?怎么判斷一個(gè)對象是否是可迭代對象呢?可以用collections模板里面的iterable包的isinstance函數(shù)進(jìn)行判斷:

>>>from collections import Iterable  #載入模塊
>>>isinstance('abc', Iterable)  #字符串是可迭代對象嗎?
True
>>> isinstance([1,2,3],Iterable) #list是可迭代對象嗎?
True
>>> isinstance({'dede':123},Iterable) #字典是可迭代對象嗎?
True

字典的迭代

>>> d={'python':1,'php':2,'java':3}

#默認(rèn)迭代的是key
>>> for i in d:
    print(i)
python
php
java
#自定義迭代key
>>> for key in d.keys():
    print(key)
python
php
java
#迭代value
>>> for value in d.values():
    print(value)
2
#同時(shí)迭代key,value
>>> for k , v in d.items():
    print(k,v)
python 1
php 2
java 3
>>>

列表和元祖包含下標(biāo)的迭代

#對于一個(gè)列表
language = ['python', 'php', 'java', 'c++']

#第一種
for x in range(len(language)):
    print(x, language[x])
#第二種
for i, value in enumerate(language):
    print(i, value)
#運(yùn)行結(jié)果
0 python
1 php 
2 java
3 c++
#在同一行輸出:
for i ,value in enumerate(lanage):
    print(i,value ,end=', ')
結(jié)果:
0 python, 1 php, 2 java, 3 c++,

任何可迭代對象都可以作用與for循環(huán),保活我們自定義的數(shù)據(jù)類型,只要符合迭代條件,就可以使用for循環(huán)

參考

廖雪峰-迭代

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績重KF閱讀 2,016評論 0 1
  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,940評論 0 5
  • 迭代是訪問集合元素的一種方式。迭代器是一個(gè)可以記住遍歷的位置的對象。迭代器對象從集合的第一個(gè)元素開始訪問,直到所有...
    youngkun閱讀 665評論 0 0
  • https://zhuanlan.zhihu.com/p/26123333 要完全理解透生成器,需要我們先掌握三個(gè)...
    Lauzanhing閱讀 459評論 0 0
  • 轉(zhuǎn)載自:深入講解Python中的迭代器和生成器 在Python中,很多對象都是可以通過for語句來直接遍歷的,例如...
    bobobe閱讀 1,098評論 2 4

友情鏈接更多精彩內(nèi)容