Поменять местами элементы в списке python - PullRequest
1 голос
/ 01 марта 2020

У меня есть список со следующими элементами:

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]

Я пытался сделать это с помощью слайса, у меня это не работает.

Ответы [ 3 ]

2 голосов
/ 01 марта 2020

Вы можете сделать это, объединив список с его реверсом:

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 голос
/ 01 марта 2020

Следующий код дает ожидаемый результат.

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]
1 голос
/ 01 марта 2020

Это то, что вы ищете?

from random import shuffle

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