交换和反转python列表中的元素



我有一个包含以下元素的列表:

L =[1, 2, 3, 4, 5]

我想镜像并重新排序如下:

L =[1,5,2,4,3]

列表中元素的数量和大小可能会变化!

有一些其他的例子,

K=[1, 2, 3]

输出可能显示为:

K=[1, 3, 2]

D=[1,2,3,4]

最终结果:

D = [1,4,2,3]

我试过用切片来做,但对我不起作用。

您可以通过将列表与其反向合并来实现这一点

lst = [1,2,3,4,5]
b = [c for a,b in zip(lst,reversed(lst)) for c in (a,b)][:len(lst)]
print(b) # [1, 5, 2, 4, 3]

这就是您想要的吗?

from random import shuffle
my_list = [1,2,3,4,5]
print (my_list)
shuffle (my_list)
print (my_list)

下面的代码为您提供了预期的输出。

l = [1,2,3,4,5]
r = []
for i in range(len(l)):
if i % 2 == 0:
r.append(l[i // 2])
else:
r.append(l[-1 - i // 2])
print(r)  # prints [1, 5, 2, 4, 3]

最新更新