在 Mathematica 中,我有一个列表:

x = {1,2,3,3,4,5,5,6}

我将如何列出重复项?像:
{3,5}

我一直在看 Lists as Sets ,如果列表中有类似 except[] 的东西,那么我可以这样做:
unique = Union[x]
duplicates = MyExcept[x,unique]

(当然,如果 x 有两个以上的重复项 - 例如,{1, 2,2,2 ,3,4,4},则输出将为 {2,2,4},但额外的 Union [] 会解决这个问题。)

但是没有类似的东西(如果我确实理解那里的所有功能)。

那么,该怎么做呢?

最佳答案

有很多方法可以像这样进行列表提取;这是我想到的第一件事:

部分[选择[Tally@x, 部分[#, 2] > 1 &], 全部, 1]

或者,更易于阅读:

理货@x
选择[%, Part[#, 2] > 1 &]
部分[%, 全部, 1]

分别给出

{{1, 1}, {2, 1}, {3, 2}, {4, 1}, {5, 2}, {6, 1}}
{{3, 2}, {5, 2}}
{3, 5}

或许你能想到一个更高效(在时间或代码空间上)的方式 :)
顺便说一句,如果列表未排序,那么您需要先在其上运行 Sort 才能工作。

关于list - 在 Mathematica 中显示重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1631087/

10-14 00:11