如何在Mathematica中仅基于列表项的一部分删除重复项



我有以下数据集(仅显示快照)

data = {{0.1, 0.2, 5}, {0.1, 0.3, 7}, {0.2, 0.2, 1}, {0.1, 0.2, 9}}

换句话说,数据的格式是{A,B,C}。我想删除基于A&仅限B。我希望输出是(有效地删除最后一项,如示例中所示)

{{0.1, 0.2, 5}, {0.1, 0.3, 7}, {0.2, 0.2, 1}}

DeleteDuplicates[data]对我不起作用,因为它在重复检测和删除中使用了所有的A、B和C。

DeleteDuplicates的文档中或多或少对此进行了解释。

DeleteDuplicates[data, Take[#1, 2] == Take[#2, 2] &]

应该做你想做的:它将data的任意两个一级元素(#1和#2)的等式函数定义为前两个子元素的等式(这就是Take[…,2]所做的)。

最新更新