簡體   English   中英

從字典中獲取值並轉換為 integer(如果存在)的最簡潔方法是什么——在 python 3.8 中?

[英]What's the neatest way to get a value from a dictionary and convert to an integer if it exists – in python 3.8?

我正在尋找一種更簡潔的方法來從字典中檢索值(如果存在)並使用 python 3.8 轉換為 integer(或替換為 0)。

這是我現在使用的代碼:

import re
data = {"x":"10", "y":"blank"}

for key in data.keys():
    n = data.get(key,0)
    n = int(n) if re.search("[0-9]+", n) else 0
    print(n)

我想將int轉換壓縮成一行——可能沒有正則表達式? 那可能嗎? 或者也許使用 pipe 功能將邏輯移動到同一行?

您可以在沒有正則表達式的情況下在一行中完成,如下所示:

data = {k: int(n) if n.isnumeric() else 0 for k, n in data.items()}

您可以使用理解將所有內容集中在一行中

import re
data = {"x":"10", "y":"blank"}

data = {k:int(v) if re.search("^[0-9]+$", v) else 0 for k, v in data.items()}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM