簡體   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