[英]remove last character from dict value python
我有一个字典:
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}]
这该怎么做? 谢谢!
使用列表推导式将bet
键切片并转换为int
base = [{'num': b['num'], 'bet': int(b['bet'][:-3])}
for b in base]
print(base)
你真的有一个字典列表; 您可以通过迭代然后按名称直接更改其中的值
for subdict in base:
subdict["bet"] = int(subdict["bet"].replace("EUR", ""))
故意发现列表中的错误值是脆弱的(如果.replace()
失败或您有其他结构,则为非 int 键引发ValueError
); 您还可以(例如)在进行转换之前通过检测像"USD"
subdict["bet"]
这样的子字符串将其扩展到其他货币(尽管您也想转换货币)
通过对值进行切片并转换为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}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.