今天我被下面的代码惊呆了:
testcases = [([1, 1, 1], 2, 2)]
for a, b, c in testcases:
print(a, b, c)
它打印:
[1, 1, 1] 2 2
我预料到会出现错误,并认为我们需要第二个循环才能找到元组的元素。任何人都可以向我解释它是如何工作的吗?我不明白 a
、b
和 c
是如何分配的。我使用的是 Python 3.6。干杯!
最佳答案
让我们看看你有什么:
testcases = [([1, 1, 1], 2, 2)]
这是一个列表。一号的。所以 testcases[0]
是唯一的元素。
所以这段代码:
for a, b, c in testcases:
pass
是一个长度为 1 的循环。所以每次通过循环(也就是一次),你都会得到元素:([1, 1, 1], 2, 2)
这是一个 tuple
.三码。
所以解包:a,b,c = testcases[0]
给出:
a == [1, 1, 1]
b == 2
c == 2
这就是您看到的打印内容。
关于python - 元组的拆包列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61030580/