【发布时间】:2020-01-10 17:43:26
【问题描述】:
解压元组时遇到问题。我希望将第一个值附加到列表中,并将第二个值分配给变量。例如:
list = []
tuple = (1, 2)
list.append, variable = tuple
但这引发了一个异常,因为我分配给一个 bultin 而不是实际调用。这在 Python 中可能吗?甚至更简单的操作,例如:
a, b = 5, 4
tuple = (1, 2)
a+, b = tuple
产生a = 6, b = 2。
【问题讨论】:
-
永远不要在内置变量之后命名变量,例如 list
-
变量名不应使用保留关键字
-
@GaganTK 它们不是保留关键字(如
and、for等),您完全不能分配给它们 -
您的两个示例彼此完全不同。感觉就像你可以使用清晰明显的 python 语法在几行上执行操作 - 这有什么问题?
-
您不能分配给函数调用。我想我可以想象一个复杂的类,它可以让你编写
Thing(lst).append, variable = tuple,其中Thing(lst)将有一个名为append的属性,它的setter 只调用lst.append。但我怀疑这是否真的值得付出努力和开销。只需写a, b = t; lst.append(a)。
标签: python unpack iterable-unpacking