Предположим, у меня есть куча элементов в длинном списке, и я хочу переключать их на основе вывода, который я получаю в функции random.randit (lo, hi). Например, мой списокПереключение двух элементов в Python
L=[(1,hi), (1, bye), (1,nope), (1,yup), (2,hi), (2, bye), (2,nope), (2,yup), (3,hi), (3, bye), (3,nope), (3,yup), (4,hi), (4, bye), (4,nope), (4,yup), (5,hi), (5, bye), (6,nope), (7,yup)]
если я импортировать from random import randint
, а затем сделать randint(0,(len(L)-1))
число я получаю в качестве вывода я хочу взять деталь, индексированную на этот номер и поменять его с последним элементом в списке, а затем randint(lo, len(L)-2))
и возьмите номер, который я получаю с этого вывода, возьмите элемент, проиндексированный с этим номером, и замените его вторым и последним элементом и так далее, пока я не дойду до начала. Это похоже на то, что я хочу переупорядочить список полностью случайным и не использовать функцию тасования.
** Я понимаю, что могу сделать randint (0, (len (L) -1)), и если я получу 5 в качестве вывода, то A = L [19] (потому что я знаю последний элемент в моем списке индексируется как 19). И затем сделайте L [19] = L [5], так что 5-й элемент займет 19-е элементы, а затем сделает L [5] = A, так что последний элемент WAS станет 5-м элементом. Но я не знаю, как написать это как цикл.
перетасовать является случайным – hjpotter92
то, что вы сделали – Hooting
возможный дубликат [Как переключить положение двух элементов в списке Python?] (Http://stackoverflow.com/questions/2493920/how-to-switch -position-of-two-items-in-a-python-list) –