gpt4 book ai didi

python - 我应该使用 list() 还是用括号括起来?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:39 25 4
gpt4 key购买 nike

如果我有一个嵌套字典,我想将一个值放入列表中并添加到列表中,我应该这样做吗

mydict[my_key][my_value] = [mydict[my_key][my_value]].append(new_value)

或者这个

mydict[my_key][my_value] = list(mydict[my_key][my_value]).append(new_value)

结构如下:

{'foo': {'bar': 'hi'}}

我想要:

{'foo': {'bar': ['hi', 'bye']}}

最佳答案

你不应该做任何一个。

list.append 就地工作并始终返回 None。因此,在 Python 执行其中任何一行之后,mydict[my_key][my_value] 将被分配给 None

您需要在其自己的行上调用 list.append:

mydict[my_key][my_value] = [mydict[my_key][my_value]]
mydict[my_key][my_value].append(new_value)

此外,list()[] 是两个不同的东西。

  • mydict[my_key][my_value] 放在方括号中会形成一个单项列表,其中 mydict[my_key][my_value] 是项目。

  • 然而,使用 list() 告诉 Python 迭代 mydict[my_key][my_value] 并将其项目收集到列表中。此外,如果 mydict[my_key][my_value] 不可迭代,则会引发 TypeError

下面是我上面所说的演示:

>>> tup = (1, 2, 3)
>>> [tup] # Places tup in a list
[(1, 2, 3)]
>>> list(tup) # Makes tup into a list
[1, 2, 3]
>>>
>>> [1]
[1]
>>> list(1) # Integers are not iterable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>

关于python - 我应该使用 list() 还是用括号括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080117/

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