2.迭代
定義:如果給定一個list或tuple,我們可以通過for循環(huán)來遍歷這個list或tuple,這種遍歷我們稱為迭代Iteration(。)
用什么語句來實現(xiàn)迭代呢?
答:for...in
python的for循環(huán)抽象程度要高于C的for循環(huán),因為python的for循環(huán)不僅可以用在list或tuple上,還可以作用在其他可迭代對象上。
python用于dict的迭代:
L={'a':1,'v':2,'f':4}
for a in L:
print(a)
例子可以見,dict默認情況下迭代的是key。如果要迭代value呢,要怎么解決呢?
答:可以用for value in d.value().
如:
L={'a':1,'v':2,'f':4}
for value in L.values():
print(value)
如果要同時迭代key和value呢?
答:for k,v in d.items()
如:
L={'a':1,'v':2,'f':4}
for k,vin L.items():
print(k,v)
字符串是否能迭代呢?
答:可以
如:
a='abcjdjdk'
for i in a:
print(i)
已知一個數(shù)據(jù),怎么判斷是否可以迭代呢?
答:通過collections模塊的terable類判斷:
from collectionsimport Iterable
isinstance([1,2,3],Iterable)
請問python能像Java一樣遍歷下標的方式么?可以用什么辦法呢?
答:能,python內(nèi)置的enumerate函數(shù)可以把一個list變成索引-元素對,這樣就可以在for循環(huán)中同時迭代索引和元素本身:
如:
for i,v in enumerate(['a','v','h']):
print(i,v)
實例:
應(yīng)用迭代找到列表內(nèi)的最大最小值:
import random
def max_min(a):
if a ==[]:
return (none,none)
else:
min_data=a[0]
max_data=a[0]
for iin a:
if min_data
min_data=i
if max_data>i:
max_data=i
return(min_data,max_data)
a=list(range(1,15))
random.shuffle(a)
print(max_min(a))