python中的动态类型转换

2024-05-16 18:55:46 发布

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

我有两条口述:

dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}

我想将dict2中的每个值转换为与dict1中相应值相同的类型,最快的python方法是什么?


Tags: 方法类型field2field1field3口述dict1dict2
2条回答

这一行程序将执行此操作-但不检查类型错误:

dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}

print {k : type(dicts1[k])(dicts2[k]) for k in dicts2}

这也会做到这一点——对某些人来说可能更具可读性:

print {k : type(dicts1[k])(v) for (k,v) in dicts2.iteritems()}

假设它们是兼容类型:

for k, v in dicts1.iteritems():
    try:
        dicts2[k] =  type(v)(dicts2[k])
    except (TypeError, ValueError) as e:
        pass # types not compatible
    except KeyError as e:
        pass # No matching key in dict

相关问题 更多 >