gpt4 book ai didi

python - 解包到Python中的list append方法

转载 作者:行者123 更新时间:2023-12-04 16:41:35 25 4
gpt4 key购买 nike

我在解包元组时遇到问题。我希望将第一个值附加到列表并将第二个值分配给变量。例如:

list = []
tuple = (1, 2)

list.append, variable = tuple

但这引发了一个异常,因为我正在分配给一个 bultin 而不是实际调用。这在 Python 中可能吗?或者更简单的操作,例如:

a, b = 5, 4
tuple = (1, 2)

a+, b = tuple

产生 a = 6, b = 2

最佳答案

没有简短的语法允许这样做。然而,这里有一个围绕列表创建包装器的类,因此分配给 append 属性实际上调用了底层列表的 append 方法。如果您有很多要附加到列表的值,这可能会很有用。

class Appender:
def __init__(self, lst):
self.lst = lst

# The rare write-only property
append = property(None, lambda self, v: self.lst.append(v))


values = []
value_appender = Appender(values)

value_appender.append, b = (1,2)
assert values == [1]

也许更简单,list 的子类具有类似的属性:

class Appendable(list):
take = property(None, lambda self, v: self.append(v))

values = Appendable()
values.take, b = (1, 2)
assert values == [1]

关于python - 解包到Python中的list append方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59686596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com