您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python删除列表理解中的字典键

python删除列表理解中的字典键

您不应该 这里完全使用列表理解。列表推导非常适合构建值列表,因此不应将其用于一般循环。对副作用使用列表理解会浪费内存,这是对一个完美的列表对象的浪费。

列表推导也是 表达式 ,因此只能包含其他表达式。del一个语句,不能在表达式内使用。

只需使用一个for循环:

# use a tuple if you need a literal sequence; stored as a constant
# with the code object for fast loading
for key in ('selected', 'actual', 'prevIoUs', 'forecast'):
    del event[key]

或使用字典理解来重建字典:

# Use a set for fast membership testing, also stored as a constant
event = {k: v for k, v in event.items()
         if k not in {'selected', 'actual', 'prevIoUs', 'forecast'}}

后者创建了一个全新的字典,因此对同一对象的其他现有引用将看不到任何更改。

如果必须在表达式中使用键删除,则可以使用object.__delitem__(key),但这不是地方。您最终将得到一个包含None对象的列表,您将立即丢弃该列表。

python 2022/1/1 18:29:32 有189人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶