我想对长度为n的列表进行重新排序,其中n可以是5到20之间的任何整数。
示例列表= [1,2,3,4,5,6]
对于我生成的每个列表,我想将最后一个但只有一个元素[-2]移到列表[0]的开头,以使最终顺序变为:
new_list = [5,1,2,3,4,6]
我尝试过:
stop_process
但是这给了我列表中的一个列表:
[5,[1,2,3,4],6]
是否有一种简单的方法可以进行列表理解?
答案 0 :(得分:2)
您可以尝试以下方法:
new_order = [myorder[-2]] + [i for i in myorder[:-2]] + [myorder[-1]]
或者,简化一下,
new_order = [myorder[-2]] + myorder[:-2] + [myorder[-1]]
答案 1 :(得分:2)
您可以使用列表切片。
例如:
l = [1,2,3,4,5,6]
print([l[-2]] + l[:-2] + l[-1:])
输出:
[5, 1, 2, 3, 4, 6]
答案 2 :(得分:1)
那呢:
>>> lst = [1, 2, 3, 4, 5, 6]
>>> lst = [lst[-2]] + lst[:-2] + [lst[-1]]
>>> lst
[5, 1, 2, 3, 4, 6]
答案 3 :(得分:1)
我认为这是最通用的方法:
example_list.insert(0, example_list.pop(-2))
您擦除(弹出)项目-2并将其插入位置0。