删除Mathematica中列表中的重复子列表

时间:2013-12-08 18:15:56

标签: list wolfram-mathematica duplicate-removal sublist

比如说,

list = {{1, 2}, {3, 1}, {2, 1}, {2, 1}, {1, 1}}

我想改为打印

{{1, 2}, {3, 1}, {2, 1},{ {1, 1}}

我尝试了DeleteDuplicates[list],但无济于事。有任何想法吗? loop并且比较每个元素会起作用,但由于我sublists的数量基于(高)阶乘,所以会占用大量内存。

2 个答案:

答案 0 :(得分:1)

这就是我得到的( Mathematica 8):

In[1]:  list = {{1, 2}, {3, 1}, {2, 1}, {2, 1}, {1, 1}};
        DeleteDuplicates[list]

Out[1]: {{1, 2}, {3, 1}, {2, 1}, {1, 1}}

答案 1 :(得分:0)

要考虑的另一个命令是Union。当它作用于单个列表时,它将删除重复项并对结果进行排序。

In[1]:= Union[{{1, 2}, {3, 1}, {2, 1}, {2, 1}, {1, 1}}]
Out[1]= {{1, 1}, {1, 2}, {2, 1}, {3, 1}}