如何使用Wolfram语言反转多个列表

时间:2019-06-16 12:02:03

标签: wolfram-language

我正在尝试找到解决问题的最佳方法:“使用范围,反向和联接来创建{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个而不是三个,我的解决方案将不会有效。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

通过功能运行列表的每个元素:

aggregate_mtcars

输出:

结果-> listB: listA = {} Function[x, listA = Join[listA, x]] /@ {Range[5], Range[4], Range[3]} listB = Reverse[listA] Clear[listA]

答案 1 :(得分: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]