Возможная комбинация списков внутри единого списка - PullRequest
3 голосов
/ 12 января 2020

Данный список

[[1,2],[3,4],[5,6]]

Я хочу вывести как 3 разных списка следующим образом

[1,2,3,4],[3,4,5,6],[1,2,5,6]

Ответы [ 2 ]

7 голосов
/ 12 января 2020

Вы можете использовать itertools.combinations, чтобы получить все возможные пары

a = [[1, 2], [3, 4], [5, 6]]

>>> list(itertools.combinations(a, 2))
[([1, 2], [3, 4]), ([1, 2], [5, 6]), ([3, 4], [5, 6])]

Чтобы сгладить отдельные элементы, просто сопоставьте их и добавьте два списка

>>> list(map(lambda x: x[0] + x[1], itertools.combinations(a, 2)))
[[1, 2, 3, 4], [1, 2, 5, 6], [3, 4, 5, 6]]
0 голосов
/ 13 января 2020

Просто используйте функцию перечисления,

>>> x=[[1,2],[3,4],[5,6]]

>>> z = [x[index-len(x)] + x[index+1 - len(x)] for index, rec in enumerate(x)]

>>> z

>>> [[1, 2, 3, 4], [3, 4, 5, 6], [5, 6, 1, 2]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...