在 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/