簡體   English   中英

python中的動態類型轉換

[英]Dynamic type casting in python

我有2個詞:

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

我想將dict2每個值轉換為與dict1相應值相同的類型,這是最快的dict1方式嗎?

假設它們是兼容的類型:

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

這個襯里會做 - 但它不會檢查類型錯誤:

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()}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM