python - 在 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
转换压缩成一行——可能没有正则表达式?那可能吗?或者也许使用管道功能将逻辑移动到同一行?
解决方案
您可以在没有正则表达式的情况下在一行中完成,如下所示:
data = {k: int(n) if n.isnumeric() else 0 for k, n in data.items()}
推荐阅读
- ruby-on-rails - 没有路由匹配错误:ActionController::UrlGenerationError: 没有路由匹配 {:action=>"Show", :controller=>"teams}
- sql - 为什么不支持使用 Sql 参数?
- matlab - 为什么在 Matlab 脚本中使用 gpuArray 时 a*b*a 比 (a'*(a*b)')' 花费更长的时间?
- java - 在 Android Java 中使用 Enum 从服务响应中反序列化对象
- python - 为什么 Flopy 给出相同的结果?
- angular - 角度:ngc 还是 tsc?
- spring-boot - 使用 spring webflux 消费 CometD 消息
- python - 如何获取“获取”请求以遵循所有重定向
- javascript - 在到期日期和当前日期之间计算,然后在 javascript 中返回剩余天数
- c++ - 在 Visual Studio 2017 中使用 C 函数未解决的外部错误