2022年 11月 4日

Python 遍历

在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