如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)
Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上
list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:
>>> d={'a':1, 'b': 2, 'c':3}
>>> for key in d:
... print(key)
c
b
a
- 因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样
默认情况下,ditc迭代的是key,如果要迭代value,则:
for value in d.values()
如果要同时迭代key 和 value,则:
for k,v in d.items()
字符串对象也是可迭代对象:
for ch in 'abc':
print(ch)
a
b
c
判断可迭代对象
通过collections模块的Iterable类型判断:
>>> from collections import Iterable
>>> isinstance('abc', Iterable) #str是否可迭代
True
>>> isinstance([1,2,3], Iterable) #list是否可迭代
True
>>> isinstance(123, Iterable) #整数是否可迭代
False
如果要对list实现类似java那样的下标循环,可以使用python内置的enumerate函数来把list变成 索引-元素 对, 即:
>>> for i, value in enumerate(['a', 'b', 'c']):
print(i, value)
0 a
1 b
2 c
在for循环里,同时引用2个变量,在python里很常见
>>> for x,y in [(1,1), (2,4), (3,9)]:
print(x, y)
1 1
2 4
3 9
网友评论