2.迭代
定义:如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代Iteration(。)
用什么语句来实现迭代呢?
答:for...in
python的for循环抽象程度要高于C的for循环,因为python的for循环不仅可以用在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)
已知一个数据,怎么判断是否可以迭代呢?
答:通过collections模块的terable类判断:
from collectionsimport Iterable
isinstance([1,2,3],Iterable)
请问python能像Java一样遍历下标的方式么?可以用什么办法呢?
答:能,python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
如:
for i,v in enumerate(['a','v','h']):
print(i,v)
实例:
应用迭代找到列表内的最大最小值:
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))