joe*_*joe 2 python dictionary python-2.7
这是问题的简化代码片段
>>> dict ({'A': 58, 'B': 130} for _ in range(1))
{'A': 'B'}
Run Code Online (Sandbox Code Playgroud)
我期望它返回传入的相同字典。
如果我做
>>> dict({'A': 58, 'B': 130})
Run Code Online (Sandbox Code Playgroud)
我得到的正是我想要的,那就是
{'A': 58, 'B': 130}
为什么这种行为不同,如何解决?我无法在此处更改表达式,但可以按自己喜欢的方式更改输入字典,例如,我可以像[{'A': 58, 'B': 130}]
可以使用另一个dict或可迭代的成对对来初始化一个dict,这就是您所提供的。请注意,迭代字典仅会产生其键。
>>> d = {'A': 58, 'B': 130}
>>> list(d)
['A', 'B']
>>> dict([('A', 'B'), ('C', 'D')])
{'A': 'B', 'C': 'D'}
>>> dict([d, ('C', 'D')])
{'A': 'B', 'C': 'D'}
Run Code Online (Sandbox Code Playgroud)
Python的行为完全符合规定。你的字典碰巧是一对。