默认情况下,dict迭代的是key:for key in dic;
如果要迭代value,可以用for value in d.values();
如果要同时迭代key和value,可以用for k, v in d.items()。
那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
>>>
from
collections
import
Iterable
>>>
isinstance(
'abc'
, Iterable)
# str是否可迭代
True
>>>
isinstance([
1
,
2
,
3
], Iterable)
# list是否可迭代z
True
>>>
isinstance(
123
, Iterable)
# 整数是否可迭代
False
最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
>>>
for
i, value
in
enumerate([
'A'
,
'B'
,
'C'
]):
...
print(i, value)
...
0
A
1
B
2
C
上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:
>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
... print(x, y)
...
1 1
2 4
3 9