python迭代

簡介php

在Python中,若是給定一個list或者tuple,咱們能夠經過for循環來遍歷這個list或者tuple,這種遍歷咱們稱爲迭代(Iteration)
在Python中,迭代是for...in來完成的,而不少語言好比C或者Java,迭代list是經過下標完成的,好比Java代碼:java

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

能夠看出,Python的for循環抽象程度要高於Java的for循環
由於,Python的for循環不只能夠用在list或tuple上,還能夠用在任何可迭代對象上。
那麼,可迭代對象有哪些呢?怎麼判斷一個對象是不是可迭代對象呢?能夠用collections模板裏面的iterable包的isinstance函數進行判斷:python

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

字典的迭代c++

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

#默認迭代的是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
#同時迭代key,value
>>> for k , v in d.items():
    print(k,v)
python 1
php 2
java 3
>>>

列表和元祖包含下標的迭代函數

#對於一個列表

language = ['python', 'php', 'java', 'c++']

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

任何可迭代對象均可以做用與for循環,保活咱們自定義的數據類型,只要符合迭代條件,就能夠使用for循環學習

歡迎加入學習交流羣569772982,你們一塊兒學習交流。code

相關文章
相關標籤/搜索