在Python中,遍历是通过for ... in
来完成的,该语句可以用在所有可迭代对象上。
使用zip
将两个列表进行关联遍历:
name_list = ['张三', '李四', '王五']
age_list = [54, 18, 34]
for name, age in zip(name_list, age_list):
print(name, ':', age)
- 1
- 2
- 3
- 4
遍历字典时,默认遍历的是key。如果要遍历value,可以用for value in d.values()
;若同时遍历key和value,可以使用for k, v in d.items()
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
print(key)
for val in d.values():
print(val)
for k, v in d.items():
print(k, v, sep=" ")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
字符串也是可迭代对象,因此也可以进行遍历字符操作。
str = "Hello"
for c in str:
print(c)
- 1
- 2
- 3
若想对列表、数组、字符串进行同时遍历下标和值 的操作,可以使用enumerate()
函数,该函数可以将一个可遍历的数据对象转化为下标与值的组合。
L = ['a', 'b', 'c', 'd']
for i, v in enumerate(L):
print(i, v, sep=' ')
str = 'Hello'
for i, v in enumerate(str):
print(i, v, sep=' ')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
那么,如何判断一个对象是可迭代对象呢?方法是通过collections.abc
模块的Iterable
类型判断:
>>> from collections.abc import Iterable
>>> isinstance('abc', Iterable) # 判断字符串是否可迭代
True
>>> isinstance([1,2,3], Iterable) # 判断list是否可迭代
True
>>> isinstance(123, Iterable) # 判断整数是否可迭代
False
- 1
- 2
- 3
- 4
- 5
- 6
- 7