好的,我已经在python中使用list很多次了,这是我第一次遇到这个问题: 在奇怪的地方附近,我有这个(简化(
list = []
dict = {}
things = {'1':'Am', '2':'I', '3':'Dumb?'}
[...]
for key,value in things.items():
if value:
dict[key]=value
print(dict)
list.append(dict)
print(list)
并得到这个结果:
{'1':'Am'}
[{'1':'Am'}]
{'2':'I'}
[{'2':'I'},{'2':'I'}]
{'3':'Dumb?'}
[{'3':'Dumb?'},{'3':'Dumb?'},{'3':'Dumb?'}]
欣欣,有人得到过这个吗?我,我卡住了,谢谢你:)
这不是一个错误。您只需将同一词典多次添加到列表中即可。因此,如果您操作该字典,您会看到列表的所有元素中的更改,因为这些元素都引用同一个字典。
您应该在每次迭代时创建一个新字典,例如:
result = []
things = {'1':'Am', '2':'I', '3':'Dumb?'}
for key, value in things.items():
if value:
result.append({key: value})
print(list)
或者使用简单的列表理解:
result = [{k: v} for k, v in things.items() if v]