如何以简单的方式更改python中dict列表中item的值?

2024-04-26 04:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

假设一个列表由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])

这很管用,但我讨厌这种愚蠢的表达。 一定有更优雅的表情。 请帮忙。你知道吗


Tags: 代码in列表foriftypeunicodekeys
1条回答
网友
1楼 · 发布于 2024-04-26 04:13:34
>>> 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类型检查,您可以,但是可以说嵌套列表/dict理解不再那么可读:

>>> 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'}]

相关问题 更多 >