我有一個字典:
base = [
{'num': 10, 'bet': '100EUR'},
{'num': 22, 'bet': '10EUR'},
{'num': 10, 'bet': '210EUR'},
{'num': 11, 'bet': '100EUR'},
{'num': 8, 'bet': '50EUR'},
{'num': 10, 'bet': '10EUR'},
{'num': 8, 'bet': '30EUR'},
{'num': 32, 'bet': '10EUR'}]
我試圖從所有“下注”值中洗掉最后 3 個符號,并使結果從 str 變為 int-因此我的基礎變成這樣:
base = [
{'num': 10, 'bet': 100},
{'num': 22, 'bet': 10},
{'num': 10, 'bet': 210},
{'num': 11, 'bet': 100},
{'num': 8, 'bet': 50},
{'num': 10, 'bet': 10},
{'num': 8, 'bet': 30},
{'num': 32, 'bet': 10}]
這該怎么做?謝謝!
uj5u.com熱心網友回復:
你真的有一個字典串列;您可以通過迭代然后按名稱直接更改其中的值
for subdict in base:
subdict["bet"] = int(subdict["bet"].replace("EUR", ""))
故意發現串列中的錯誤值是脆弱的(ValueError如果.replace()失敗或您有其他結構,則為非 int 鍵引發);您還可以(例如)通過"USD" subdict["bet"]在進行轉換之前檢測子字串將其擴展到其他貨幣(盡管您也想轉換貨幣)
uj5u.com熱心網友回復:
使用串列理解并將bet鍵切片并轉換為int
base = [{'num': b['num'], 'bet': int(b['bet'][:-3])}
for b in base]
print(base)
uj5u.com熱心網友回復:
通過對值進行切片并轉換為 來更新值int:
for d in base:
d['bet'] = int(d['bet'][:-3])
輸出:
[{'num': 10, 'bet': 100},
{'num': 22, 'bet': 10},
{'num': 10, 'bet': 210},
{'num': 11, 'bet': 100},
{'num': 8, 'bet': 50},
{'num': 10, 'bet': 10},
{'num': 8, 'bet': 30},
{'num': 32, 'bet': 10}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358756.html
下一篇:減少多個鍵的相同值的字典大小?
