如果你想在同一时刻迭代 2 个列表,你应该使用zip() 函数。
例子:
>>> lol = [1,2,3,4,5]
>>> kek = [6,7,8,9,10]
>>> for num, secnum in zip(lol, kek):
... print(num, secnum)
让我解释一下为什么你不能“解包”它。
例如,假设我们有这个列表:
arr = [1, 2, 3, 4, 5]。每次迭代只能得到 1 个对象,对吧?
one = arr[0]
two = arr[2]
...
这就是我们从列表中获取值的方式。
我们也可以这样赋值:
one, two, three = arr[0], arr[1], arr[2]
在 python 中有* 符号,表示您可以在列表中“打包”值。
colors = ['cyan', 'magenta', 'yellow', 'black']
cyan, magenta, *other = colors
print(cyan)
print(magenta)
print(other)
输出:
cyan
magenta
['yellow', 'black']
总结一下解压的作用:
- 解包会将列表的元素分配给多个变量。
- 在像 *variable_name 这样的变量前使用星号 (*) 将列表的剩余元素打包到另一个列表中。