【发布时间】:2019-03-07 02:12:10
【问题描述】:
我正在尝试使用 Mathematica 中的 GatherBy 函数来获取列表中的对 a={{1, 4}, {2, 3}, {1, 5}, {2, 5}, {3, 4}, {6, 8}, {6, 7}, {7, 8}} 并按包含值 1 的对进行排序。理想情况下,输出看起来像 Output={ { {1,4},{1,5} } , {{2, 3}, {2, 5}, {3, 4}, {6, 8}, {6, 7}, {7, 8} } } 或其他东西类似的,输出中的第一个元素是 a 中包含 1 的所有元素的列表,第二个元素包含所有不包含 1 的对。
【问题讨论】:
-
谢谢你,永义。我发现这更好用,
b = GatherBy[a, MemberQ[#, 1] &],因为我将组合所有包含 1 的集合,因此它们在此过程中不会简单地成对。很抱歉把那部分漏掉了。我想作为推论,当我开始根据值 4 进行分组时,我使用了类似的命令b = GatherBy[a, MemberQ[#, 4] &] Output:{{{6, 8}, {6, 7}, {7, 8}}, {{1, 4, 5}, {2, 3, 4, 5}}},但我希望包含 for 的列表集首先出现。有什么建议吗?
标签: sorting wolfram-mathematica