ian*_*ell 1 python dictionary list
如果我有一个嵌套字典,我想在列表中创建一个值并添加到它,我应该这样做
mydict[my_key][my_value] = [mydict[my_key][my_value]].append(new_value)
Run Code Online (Sandbox Code Playgroud)
或这个
mydict[my_key][my_value] = list(mydict[my_key][my_value]).append(new_value)
Run Code Online (Sandbox Code Playgroud)
结构如下:
{'foo': {'bar': 'hi'}}
Run Code Online (Sandbox Code Playgroud)
而且我要:
{'foo': {'bar': ['hi', 'bye']}}
Run Code Online (Sandbox Code Playgroud)
你不应该做任何一个.
list.append在原地工作并始终返回None.因此,mydict[my_key][my_value]将None在Python执行其中任一行之后分配给它们.
你需要自己打电话list.append:
mydict[my_key][my_value] = [mydict[my_key][my_value]]
mydict[my_key][my_value].append(new_value)
Run Code Online (Sandbox Code Playgroud)
此外,list()和[]是两个不同的东西.
把mydict[my_key][my_value]在方括号使得一个项目列表,mydict[my_key][my_value]是该项目.
list()然而,使用Python会迭代mydict[my_key][my_value]并将其项目收集到列表中.此外,TypeError如果mydict[my_key][my_value]不可迭代,将引发a .
以下是我上面所说的:
>>> 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
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |