我想做类似的事情:

>>> x = [1,2,3,4,5,6,7,8,9,0]  
>>> x  
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]  
>>> y = [1,3,5,7,9]  
>>> y  
[1, 3, 5, 7, 9]  
>>> y - x   # (should return [2,4,6,8,0])

但python列表不支持这一点

推荐答案

使用列表理解:

[item for item in x if item not in y]

如果要使用-中缀语法,只需执行以下操作:

class MyList(list):
    def __init__(self, *args):
        super(MyList, self).__init__(args)

    def __sub__(self, other):
        return self.__class__(*[item for item in self if item not in other])

然后你可以像这样使用它:

x = MyList(1, 2, 3, 4)
y = MyList(2, 5, 2)
z = x - y   

但是,如果你不一定需要列表属性(例如,排序),那么就按照其他答案的建议使用集合.

Python相关问答推荐

根据另一列中的nan重置值后重新加权Pandas列

max_of_three使用First_select、second_select、

对某些列的总数进行民意调查,但不单独列出每列

删除所有列值,但判断是否存在任何二元组

使可滚动框架在tkinter环境中看起来自然

无法通过python-jira访问jira工作日志(log)中的 comments

DataFrames与NaN的条件乘法

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

如何在图中标记平均点?

如何并行化/加速并行numba代码?

(Python/Pandas)基于列中非缺失值的子集DataFrame

使用字典或列表的值组合

有没有办法在不先将文件写入内存的情况下做到这一点?

用0填充没有覆盖范围的垃圾箱

如何在Python中实现高效地支持字典和堆操作的缓存?

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格

如何在Polars中将列表中的新列添加到现有的数据帧中?

GEKKO中若干参数的线性插值动态优化

保存由PYTHON在EXCEL中所做更改的问题

条件Python Polars cum_sum over a group,有更好的方法吗?