我有一个dict:
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'}]
我正试图从所有"bet"值中删除最后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}]
如何做到这一点?谢谢
真的有一个字典列表;您可以通过迭代然后命名来直接更改其中的值
for subdict in base:
subdict["bet"] = int(subdict["bet"].replace("EUR", ""))
这是脆弱的故意来发现列表中的坏值(如果.replace()
失败或您有其他结构,则为非int键引发ValueError
(;您也可以(例如(将其扩展到其他货币,方法是在进行转换之前检测像"USD"
subdict["bet"]
这样的子字符串(尽管您也希望转换货币(
使用列表理解并切片bet
密钥并转换为int
base = [{'num': b['num'], 'bet': int(b['bet'][:-3])}
for b in base]
print(base)
通过对值进行切片并转换为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}]