[英]How to change value for item in a list of dict in python in a simple way?
假设一个由python中的几个dict组成的列表:
a = [{1: u'100'}, {2: u'200'}, {3: u'300'}]
我想将dict项的数据类型从unicode更改为float,即
a = [{1: 100.0}, {2: 200.0}, {3: 300.0}]
以下是我目前的代码:
for i in a:
for j in i.keys():
if type(i[j]) == unicode:
i[j] = float(i[j])
它有效,但我讨厌这个愚蠢的表达。 必须有一些更优雅的表达方式。 请帮忙。
>>> a = [{1: u'100'}, {2: u'200'}, {3: u'300'}]
>>> [{k:float(v) for k,v in d.iteritems()} for d in a]
[{1: 100.0}, {2: 200.0}, {3: 300.0}]
如果你需要添加一个Unicode类型检查,你可以,但可以说,嵌套列表/字典理解不再是所有可读的:
>>> a = [{1: u'100'}, {2: u'200'}, {3: u'300', 4: "not unicode"}]
>>> [{k:float(v) if isinstance(v, unicode) else v for k,v in d.iteritems()} for d in a]
[{1: 100.0}, {2: 200.0}, {3: 300.0, 4: 'not unicode'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.