Перемешивание пар в списках списков - PullRequest
1 голос
/ 05 ноября 2019

Учитывая список списков следующим образом:

aList = [["1","Number1", "2", "Number2","3","Number3", "4", "Number4"],["3","Number3", "1", "Number1","2","Number2", "4", "Number4"]]

Я пытаюсь перетасовать каждые два элемента в подсписке, чтобы получить что-то вроде, например:

aListNew = [["3","Number3", "1", "Number1","4","Number4", "2", "Number2"],["2","Number2", "3", "Number3","1","Number1", "4", "Number4"]]

Так чтоважно, чтобы две последовательные строки оставались вместе во время перетасовки.

1 Ответ

1 голос
/ 06 ноября 2019

Есть множество способов сделать это. Вы не указываете, что вы пробовали или почему это не сработало. Тем не менее, поскольку на этот вопрос еще не ответили и не закрыли, здесь приведен код. Пожалуйста, ознакомьтесь с правилами размещения сообщений, чтобы ваши будущие сообщения генерировали больше ответов и с меньшей вероятностью были закрыты.

import random

aList = [["1","Number1", "2", "Number2","3","Number3", "4", "Number4"],["3","Number3", "1", "Number1","2","Number2", "4", "Number4"]]
alist_alt = []

for sublist in aList:
    l = len(sublist)
    r = list(range(0, l ,2))
    random.shuffle(r)

    sublist_alt=[]
    for i in r:
        sublist_alt.append(sublist[i])
        sublist_alt.append(sublist[i+1])

    alist_alt.append(sublist_alt)

print(alist_alt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...