繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM