如何将字典中的字符串值转换为int/float数据类型?

siv*_*iva 25 python string int dictionary list

我有一个字典列表如下:

list = [ { 'a':'1' , 'b':'2' , 'c':'3' }, { 'd':'4' , 'e':'5' , 'f':'6' } ]
Run Code Online (Sandbox Code Playgroud)

如何将列表中每个字典的值转换为int/float?

所以它变成:

list = [ { 'a':1 , 'b':2 , 'c':3 }, { 'd':4 , 'e':5 , 'f':6 } ]
Run Code Online (Sandbox Code Playgroud)

谢谢.

Pow*_*eke 39

得到爱情列表的理解.

[dict([a, int(x)] for a, x in b.items()) for b in list]
Run Code Online (Sandbox Code Playgroud)

(注意:对于Python 2唯一代码,您可以使用"iteritems"而不是"items")


Jim*_*Jim 23

for sub in the_list:
    for key in sub:
        sub[key] = int(sub[key])
Run Code Online (Sandbox Code Playgroud)

给它一个转换为int而不是字符串.


Jon*_*erg 7

如果这是您的确切格式,您可以浏览列表并修改字典。

for item in list_of_dicts:
    for key, value in item.iteritems():
        try:
            item[key] = int(value)
        except ValueError:
            item[key] = float(value)
Run Code Online (Sandbox Code Playgroud)

如果你有一些更一般的东西,那么你将不得不对字典进行某种递归更新。检查元素是否是字典,如果是,则使用递归更新。如果它能够转换为浮点数或整数,则将其转换并修改字典中的值。没有内置函数,它可能非常丑陋(并且非pythonic,因为它通常需要调用isinstance)。