首页 > 解决方案 > 在 Python 的 for 循环中使用多个变量

问题描述

我试图更深入地了解forPython 中不同数据类型的循环方式。使用 for 循环迭代数组的最简单方法是

for i in range(len(array)):
    do_something(array[i])

我也知道我可以

for i in array:
    do_something(i)

我想知道的是这是做什么的

for i, j in range(len(array)):
    # What is i and j here?

或者

for i, j in array:
    # What is i and j in this case?

如果我尝试对dictionaries 或使用相同的想法会发生什么tuples

标签: pythonarraysfor-looppython-2.x

解决方案


最简单最好的方法是第二种,而不是第一种!

for i in array:
    do_something(i)

永远不要这样做,它不必要地使代码复杂化:

for i in range(len(array)):
    do_something(array[i])

如果出于某种原因需要数组中的索引(通常不需要),请改为执行以下操作:

for i, element in enumerate(array):
    print("working with index", i)
    do_something(element)

这只是一个错误,TypeError: 'int' object is not iterable当您尝试将一个整数解压缩为两个名称时会得到:

for i, j in range(len(array)):
    # What is i and j here?

这个可能有效,假设数组是“二维的”:

for i, j in array:
    # What is i and j in this case?

二维数组的一个示例是一对列表:

>>> for i, j in [(0, 1), ('a', 'b')]:
...     print('i:', i, 'j:', j)
...     
i: 0 j: 1
i: a j: b

注意: ['these', 'structures']在 Python 中称为列表,而不是数组。


推荐阅读