Выбор списков из списка списка - PullRequest
0 голосов
/ 26 января 2019

Итак, у меня проблема с моим кодом, и я не могу найти, где я его неправильно понял У меня есть list:

D = [[[0, 0], [0, 1], [0, 2], [0, 1]], [[0, 0], [1, 0], [1, 1], [1, 0]]]

Который состоит из двух list с

A = [[0, 0], [0, 1], [0, 2], [0, 1]]
B = [[0, 0], [1, 0], [1, 1], [1, 0]]

Я хочу заполнить пустую list P = [] следующим образом:

P = [D[0][0],D[1][0],D[0][1],D[1][1] etc... ] in this specific order

Я уже пытался использовать цикл, но вывод

P = [D[0][0],D[0][1],D[0][2],D[0][3]][D[1][0],D[1][1],D[1][2],D[1][3]]

Ответы [ 3 ]

0 голосов
/ 26 января 2019

Я считаю, что это ваш желаемый результат:

import itertools

D = [[[0, 0], [0, 1], [0, 2], [0, 1]], [[0, 0], [1, 0], [1, 1], [1, 0]]]

P = list(itertools.chain.from_iterable(zip(*D)))
print(P)

Выход:

[[0, 0], [0, 0], [0, 1], [1, 0], [0, 2], [1, 1], [0, 1], [1, 0]]
0 голосов
/ 26 января 2019

Как вы описываете свою проблему, вы можете достичь желаемого результата, используя sum вместе с zip и map, что довольно сложно и неэффективно, но оно сделает вашу работу:

D = [[[0, 0], [0, 1], [0, 2], [0, 1]], [[0, 0], [1, 0], [1, 1], [1, 0]]]

P = sum(list(map(list,zip(*D))),[])

print(P)

Выход:

[[0, 0], [0, 0], [0, 1], [1, 0], [0, 2], [1, 1], [0, 1], [1, 0]]

Вы должны предоставить некоторые дополнительные детали вашего вопроса, например, желаемый результат вышеупомянутого.

0 голосов
/ 26 января 2019

Проверьте с этим

P = sum(D,[])
P[[0, 0], [0, 1], [0, 2], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...