Qia*_* Li 3 wolfram-mathematica
例如,我有一个列表,如:
{{1, 2, 3}, {6}, {4, 5}, {1, 6}, {2, 2, 3, 2}, {9}, {7}, {2, 5}}
Run Code Online (Sandbox Code Playgroud)
我希望根据列表元素的总数得到一个统计列表.
在这种情况下,我希望输出为:
{{6, {{1, 2, 3}, {6}}, {7, {{2, 5}, {1, 6}, {7}}}, {9, {{4, 5}, {2, 2, 3, 2}, {9}}}}}
Run Code Online (Sandbox Code Playgroud)
如何在Mathematica中方便地做到这一点?
非常感谢.
这是我的尝试 - 比尤达的简单一点
lst = {{1, 2, 3}, {6}, {4, 5}, {1, 6}, {2, 2, 3, 2}, {9}, {7}, {2, 5}};
{Total@First@#, #} & /@ GatherBy[lst, Total]
Run Code Online (Sandbox Code Playgroud)
如果您不想重复元素,那么您可以使用
{Total@First@#, Union[#]} & /@ GatherBy[lst, Total]
Run Code Online (Sandbox Code Playgroud)
或者,如果你真的想要一个类似计数的操作
{Total@First@#, Tally[#]} & /@ GatherBy[lst, Total]
Run Code Online (Sandbox Code Playgroud)