为什么Python dict理解忽略了dict中的第一个元素?

Pyd*_*man 0 python dictionary key-value python-2.7 dictionary-comprehension

我想转换成floatsstring值(应该已经被表示为浮动原本)在以下字典:

{'a': '1.3', 'b': '4'}
Run Code Online (Sandbox Code Playgroud)

如果我尝试词典理解:

{k:float(v) for v in d.values()}
Run Code Online (Sandbox Code Playgroud)

我最终得到了dict中的第二项:

In [191]: {k:float(v) for v in d.values()}
Out[191]: {'b': 4.0}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

Avi*_*Raj 6

使用d.items(),您还需要通过变量分别引用键,值.这里k指的是键并v引用该值.

{k:float(v) for k,v in d.items()}
Run Code Online (Sandbox Code Playgroud)

例:

>>> d = {'a': '1.3', 'b': '4'}
>>> {k:float(v) for k,v in d.items()}
{'a': 1.3, 'b': 4.0}
Run Code Online (Sandbox Code Playgroud)


M.j*_*vid 6

k每个v值的值都不会更改,请将代码更改为:

{k:float(v) for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)