首页 > 解决方案 > 根据特定顺序重新排序列表

问题描述

我想重新排序长度为 n 的列表,其中 n 可以是 5 到 20 之间的任何整数。

示例列表 = [1,2,3,4,5,6]

对于我生成的每个列表,我想将最后一个元素 [-2] 移动到列表 [0] 的开头,以便最终顺序变为:

新列表 = [5,1,2,3,4,6]

我努力了:

myorder =[1,2,3,4,5,6]


new_order = [(myorder[-2]), [i for i in myorder[:-2]], (myorder[-1])]

但这给了我一个列表中的列表:

[5, [1, 2, 3, 4], 6]

有没有一种简单的方法来实现列表理解?

标签: pythonlist-comprehension

解决方案


你可以试试这个:

new_order = [myorder[-2]] + [i for i in myorder[:-2]] + [myorder[-1]]

或者,稍微简化一下,

new_order = [myorder[-2]] + myorder[:-2] + [myorder[-1]]

推荐阅读