[英]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.