我有两个元组,可能有重复的元素,也可能没有重复的元素.考虑到多重性,我想删除元组a中没有出现在元组b中的元素.那是,

a = (1, 2, 3), b = (2, 3, 4) => (1)
a = (1, 2, 2, 3), b = (2, 3, 4) => (1, 2)
a = (1, 2, 3), b = (2, 2, 3, 4) => (1)

我想使用这些元组作为@lrucache的键,所以我需要一个Hasable类型.

如果没有更好的方法,我甚至不确定如何手工完成这项工作.

编辑:这是一个Python问题,我意识到这个问题可能并不明显.

推荐答案

您可以使用COUNTER将元素与其频率相减.

https://docs.python.org/3/library/collections.html#collections.Counter

from collections import Counter as c
a = (1, 2, 2, 3)
b = (2, 3, 4)



print(tuple((c(a)-c(b)).elements()))
(1,2)

举一个更复杂的例子

from collections import Counter as c
a = (1, 2, 2, 2, 3, 5)
b = (2, 3, 4)



print(tuple((c(a)-c(b)).elements()))

#outputs

(1, 2, 2, 5)

Python相关问答推荐

Python在通过Inbox调用时给出不同的响应

查找下一个值=实际值加上使用极点的50%

如何防止Plotly在输出到PDF时减少行中的点数?

使用GEKKO在简单DTE系统中进行一致初始化

通过仅导入pandas来在for循环中进行多情节

jit JAX函数中的迭代器

如何检测背景有噪的图像中的正方形

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

如何标记Spacy中不包含特定符号的单词?

从dict的列中分钟

为什么默认情况下所有Python类都是可调用的?

如何使用它?

ODE集成中如何终止solve_ivp的无限运行

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

在pandas中使用group_by,但有条件

如何更新pandas DataFrame上列标题的de值?

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

在两极中过滤

如何在BeautifulSoup/CSS Select 器中处理regex?

从旋转的DF查询非NaN值