列表相减:计算差值
Python 中的列表可以包含各种元素。为了对列表执行数学运算(例如减法),我们采用特定的方法或技术。让我们探讨如何从一个列表中减去另一个列表。
使用列表理解进行逐元素减法
一种方法是利用列表理解,它会迭代第一个列表并计算差异,同时保留原始顺序:
[item for item in x if item not in y]
减去集合以加快计算速度
如果维护元素的顺序并不重要,则基于集合的方法可以提供更快的计算速度:
list(set(x) - set(y))
覆盖 sub 进行列表减法
要使用中缀“-”运算符启用列表减法,我们可以覆盖继承自 list 的类的 __sub__ 方法:
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 # z becomes a MyList object containing the difference
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3