我正在尝试找到解决问题的最佳方法:">使用范围、反向和连接来创建{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}
,您必须使用函数范围、反向和连接来创建预期的输出:
5, 4, 3, 2, 1}
如果有 100 个列表而不是三个列表,我的解决方案将效率不高。
提前感谢您的帮助
通过函数运行列表的每个元素:
listA = {}
Function[x, listA = Join[listA, x]] /@ {Range[5], Range[4], Range[3]}
listB = Reverse[listA]
Clear[listA]
输出:
结果 ->列表 B: {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]