【发布时间】:2017-01-08 03:34:36
【问题描述】:
我正在尝试使用列表推导从列表中删除一些项目,只保留未指定的项目。
例如,如果我有 2 个列表 a = [1,3,5,7,10] 和 b = [2,4] 我想保留 a 中不在与 b 中的数字对应的索引处的所有项目。
现在,我尝试使用 y = [a[x] for x not in b] 但这会产生 SyntaxError。
y = [a[x] for x in b] 工作正常,只保留我想要删除的元素。
那么我该如何实现呢?顺便说一句,这是一个好方法还是我应该使用del?
【问题讨论】:
-
你是这个意思?
[x for i,x in enumerate(a) if i not in b] -
是的,它是,不,你不应该;)
-
in是列表解析语法的一部分,而不是in运算符,因此不能简单地被not in替换。
标签: python list list-comprehension not-operator