python - 元组的拆包列表

标签 python

今天我被下面的代码惊呆了:

testcases = [([1, 1, 1], 2, 2)]

for a, b, c in testcases:
    print(a, b, c)

它打印:

[1, 1, 1] 2 2

我预料到会出现错误,并认为我们需要第二个循环才能找到元组的元素。任何人都可以向我解释它是如何工作的吗?我不明白 abc 是如何分配的。我使用的是 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/

相关文章:

python - paramiko python 模块卡在 stdout.read()

python - 如何在 matplotlib 直方图中选择 bin

python - 从 Django 模型返回 JSON 格式的子属性

python - Python 中输入数字列表中的最大数字

python - 沿最后一个维度索引 numpy nd 数组

python - 在字符串的开头和结尾插入字符

python - 在 Pandas 中使用 SUMIF 函数

python - 右键单击QTableWidget获取标题列

python - Xenserver API - 使用本地存储创建虚拟机?

Python3 ASCII 十六进制到二进制字符串的转换