首页 > 解决方案 > 在 python 3.8 中,从字典中获取值并转换为整数(如果存在)的最简洁方法是什么?

问题描述

我正在寻找一种更简洁的方法来从字典中检索值(如果存在)并使用 python 3.8 转换为整数(或替换为 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转换压缩成一行——可能没有正则表达式?那可能吗?或者也许使用管道功能将逻辑移动到同一行?

标签: pythonpython-3.8

解决方案


您可以在没有正则表达式的情况下在一行中完成,如下所示:

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

推荐阅读