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

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

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

new_list = [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]


有一种简单的方法可以执行列表理解吗?

最佳答案

您可以尝试以下方法:

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


或者,简化一下,

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

关于python - 根据特定顺序对列表重新排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53740279/

10-12 21:13