我想重新排序 Tally[Characters["2723198931"]]
的结果根据其每个元素的第一个分量,按 lst = {"3", "1", "2", "9"}
的顺序排列.也就是说,我希望输出为 {{{"3", 2}}, {{"1", 2}}, {{"2", 2}}, {{"9", 2}}}
.
目前我有一种丑陋的解决方案,但想知道是否有人可以帮助提供一个简洁的解决方案。非常感谢。
最佳答案
一种方式可能是
data = Tally[Characters["2723198931"]];
lst = {"3", "1", "2", "9"};
(*algorithm*)
pos = Position[data[[All, 1]], #] & /@ lst;
Extract[data, pos]
输出
{{{"3", 2}}, {{"1", 2}}, {{"2", 2}}, {{"9", 2}}}
更新 2:37 am
以上屏幕截图,我在 Windows 7 上使用 v 8.04
关于wolfram-mathematica - 在 Mathematica 中重新排序列表元素的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633109/