如何使用 Wolfram 语言反转多个列表
How to reverse multiple lists using the Wolfram-Language
我正在寻找解决问题的最佳方法: "Use Range, Reverse and Join to create {3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
"
所以基本上给定的列表是 {1, 2, 3, 4, 5}, {1, 2, 3, 4}, {1, 2, 3}
。
我可以很容易地解决这个问题,但想知道是否有比我想出的更好的方法(更有效)。:
我的解决方案:
In[136]:= Join[ Reverse[Range[3]], Reverse[Range[4]], Reverse[Range[5]] ]
In[141]:= Reverse[Join[ Range[5], Range[4], Range[3] ]]
给定列表:{1, 2, 3, 4, 5}, {1, 2, 3, 4}, {1, 2, 3}
,您必须在其中使用函数 Range、Reverse 和 Join 来创建预期输出:
{3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
如果有 100 个列表而不是三个,我的解决方案将不会有效。
在此先感谢您的帮助
运行 列表中的每个元素通过一个函数:
listA = {}
Function[x, listA = Join[listA, x]] /@ {Range[5], Range[4], Range[3]}
listB = Reverse[listA]
Clear[listA]
输出:
结果 -> listB: {3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
Range[#] & /* Reverse /@ {3, 4, 5} // Flatten
{3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
更新
有人在没有提供理由的情况下投票删除了我的回答。也许是因为它没有使用Join
。解决这个问题
Range[#] & /* Reverse /@ {3, 4, 5} // Apply[Join]
我正在寻找解决问题的最佳方法: "Use Range, Reverse and Join to create {3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
"
所以基本上给定的列表是 {1, 2, 3, 4, 5}, {1, 2, 3, 4}, {1, 2, 3}
。
我可以很容易地解决这个问题,但想知道是否有比我想出的更好的方法(更有效)。:
我的解决方案:
In[136]:= Join[ Reverse[Range[3]], Reverse[Range[4]], Reverse[Range[5]] ]
In[141]:= Reverse[Join[ Range[5], Range[4], Range[3] ]]
给定列表:{1, 2, 3, 4, 5}, {1, 2, 3, 4}, {1, 2, 3}
,您必须在其中使用函数 Range、Reverse 和 Join 来创建预期输出:
{3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
如果有 100 个列表而不是三个,我的解决方案将不会有效。
在此先感谢您的帮助
运行 列表中的每个元素通过一个函数:
listA = {}
Function[x, listA = Join[listA, x]] /@ {Range[5], Range[4], Range[3]}
listB = Reverse[listA]
Clear[listA]
输出:
结果 -> listB: {3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
Range[#] & /* Reverse /@ {3, 4, 5} // Flatten
{3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}
更新
有人在没有提供理由的情况下投票删除了我的回答。也许是因为它没有使用Join
。解决这个问题
Range[#] & /* Reverse /@ {3, 4, 5} // Apply[Join]