从dict-value-python中删除最后一个字符



我有一个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}]

最新更新