Python列表中的交换和反向元素

问题描述 投票:1回答:3

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

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]

我试图用切片来做,对我来说不起作用。

python python-3.x list slice
3个回答
2
投票

您可以通过将列表与其相反的位置合并来做到这一点:

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]

1
投票

这是您要寻找的吗?

from random import shuffle

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

1
投票

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

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]
© www.soinside.com 2019 - 2024. All rights reserved.