如何在 Python 中减去列表
使用列表时,在某些情况下您可能需要从一个列表中减去另一个列表。 Python 中的列表减法涉及识别一个列表中存在但另一个列表中不存在的元素。
使用列表理解
一种简单的方法是使用列表理解。通过迭代第一个列表 (x),您可以创建一个新列表,其中仅包含第二个列表 (y) 中不存在的元素:
<code class="python">[item for item in x if item not in y]</code>
此方法保持 x 的原始顺序,同时排除元素在 y 中找到。
使用集合差异
如果您不关心保留列表属性(例如排序),则可以利用集合差异操作。集合是无序集合,因此它们会丢弃重复项。要执行设置差异:
<code class="python">list(set(x) - set(y))</code>
此方法返回一个列表,其中包含第一个列表所独有的元素。
重写 sub 方法
为了语法方便,你可以定义一个继承自 list 的自定义类,并重写 sub 方法:
<code class="python">class MyList(list): def __sub__(self, other): return self.__class__(*[item for item in self if item not in other])</code>
使用这个类,你可以使用中缀减法:
<code class="python">x = MyList(1, 2, 3, 4) y = MyList(2, 5, 2) z = x - y # Subtracts y from x and assigns to z</code>
以上是如何在 Python 中对列表进行减法?的详细内容。更多信息请关注PHP中文网其他相关文章!