我有两个元组列表,按照以下顺序显示:
因此,正如您在此示例中所看到的一样,算法在比较各个元组时将完全忽略最后一个数字或第4个元素。因此,我希望如果匹配元组的前三个元素,则可以预测即使第四个元素可能相同也没有差异。 我尝试过的: 除了搜索解决方案外,我只想尝试
a = [(18, 299, 70, 33), (18, 323, 70, 34),
(18, 448, 70, 35), (18, 548, 70, 36), (18, 613, 70, 37)]
b = [(18, 223, 70, 37), (18, 299, 70, 38),
(18, 323, 70, 39), (18, 448, 70, 40), (18, 548, 70, 41), (18, 613, 70, 42)]
我想要:
1). 我试图打印出在b
中但不在a
中的元素。
2). 我想以这样的方式比较上述显示的列表,即只比较各个元组的前三个元素,而不考虑该元组的不匹配的最后一个元素,即37
、38
、39
等。因此,在上面的情况下,我希望我的答案看起来像:
result = [(18,223,70,37)]
因此,正如您在此示例中所看到的一样,算法在比较各个元组时将完全忽略最后一个数字或第4个元素。因此,我希望如果匹配元组的前三个元素,则可以预测即使第四个元素可能相同也没有差异。 我尝试过的: 除了搜索解决方案外,我只想尝试
set(b_value)-set(a_value)
方法。但我知道它不起作用,因为结果生成的格式如下:
set([(18, 613, 70, 42), (18, 448, 70, 40), (18, 548, 70, 41), (18, 299, 70, 38), (18, 323, 70, 39), (18, 223, 70, 37)])
这是显而易见的结果,因为所有元组的最后一个元素都不匹配,因此该方法预测所有这样的元组均未匹配。
编辑: 我希望保留结果中第四个元素的值,因此删除所有元组中的第四个元素并进行比较不是一个选项。