python - 你能在 Python 列表理解中嵌入一个 try 吗?

标签 python python-3.x dictionary

有没有办法做类似的事情?

my_list = [try: my_dict["some_key"] except KeyError: 0 for my_dict in my_list]

由于字典会抛出 KeyErrors,如果列表中的元素没有“some_key”属性,我想捕获错误。我知道我可以通过导入集合并回避异常来创建 defaultdict,但我想知道开箱即用的字典是否可行。

最佳答案

不,你不能。您只能放置 for 循环、ifelse

不过,您可以做的是使用 .get() ,它永远不会抛出 KeyError:

my_list = [my_dict.get("some_key", 0) for my_dict in my_list]

第二个参数是键不存在时的默认值。如果您不指定默认值,则默认值为 None。

关于python - 你能在 Python 列表理解中嵌入一个 try 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281818/

相关文章:

python - 将列表中长度不等的值追加到字典中

python - 参数与参数 Python

python - 使用 python requests 模块上传文件

python - 静态方法和继承设计

python - 无法使用请求 HTML 找到 css 类

python - 这个 lambda 有什么问题(也许与 PyQt 有关?)

c++ - 通过 SWIG 从 Python 访问 UtcTimeStamp

python - 使用现有实例初始化 super?

java - Jetty '{servlet}/{parameter}' url路由

Python 将哈希值转换为数据帧