Jamal的博客

Python-迭代

给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,我们称为迭代(iteration)。
在python中,迭代是通过for…in…来实现的,在java和c中是通过下标来完成的,从这个角度来说,python是一种更加高级的抽象。

1
2
3
4
java代码:
String[] args = {"aaa", "bbb"};
for (int i = 0; i < args.length; i++) {
}

python的list是有下标的,但是其他很多的数据类型是没有下标的,但是只要是一个可迭代的对象,就可以被迭代,例如dict:

1
2
3
d = {'a': 1, 'b': 2}
for key in d:
print(key)

默认情况下,dict迭代的是key,如果需要迭代value,那么可以for value in d.values(),同时迭代k v 可以使用for k, v in d.items()
字符串也是一个可迭代的对象:

1
for i in `abc`

综上:使用for的时候,只要作用于一个可迭代的对象,就可以正常运行而不用关心到底是什么数据结构
如果需要对list实现游标遍历,可以使用:

1
2
for i, value in enumerate['a', 'b', 'c']:
print(i, value)

for中同时引用两个变量,在python中比较常见:

1
2
for x, y in [(1, 2), (3, 4)]
print(x, y)