Какой самый простой способ получить значение из словаря и преобразовать его в целое число, если оно существует - в python 3.8? - PullRequest
0 голосов
/ 02 августа 2020

Я ищу более аккуратный способ получить значение из словаря (если он существует) и преобразовать его в целое число (или заменить на 0), используя python 3.8.

Вот код I Сейчас я использую:

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 в одну строку - возможно, без регулярного выражения? Это возможно? Или, возможно, с помощью функции конвейера переместить лог c в ту же строку?

Ответы [ 2 ]

2 голосов
/ 02 августа 2020

Вы можете сделать это в одной строке без регулярного выражения, например:

data = {k: int(n) if n.isnumeric() else 0 for k, n in data.items()}
0 голосов
/ 02 августа 2020

Вы можете использовать понимание, чтобы собрать все в одной строке

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()}
...