Ответ 1
Вам нужно itertools.combinations
:
>>> from itertools import combinations
>>> L = [1, 2, 3, 4]
>>> [",".join(map(str, comb)) for comb in combinations(L, 3)]
['1,2,3', '1,2,4', '1,3,4', '2,3,4']
Изменить: Это не точный дубликат Как получить все возможные комбинации элементов списка?
Этот раздел посвящен поиску уникальных комбинаций, в то время как другая тема касается поиска ВСЕХ комбинаций.
Если у меня есть список python:
L = [1,2,3,4]
какой лучший способ получить все возможные уникальные комбинации из 3-х элементов из списка, как показано ниже:
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
Порядок элементов в комбинациях не имеет значения. Например, "1,2,3"
и "3,2,1"
будут считаться одной и той же комбинацией.
Возможно, я могу написать несколько циклов для этого, но я думаю, что может быть однострочный, который может сделать то же самое.
Вам нужно itertools.combinations
:
>>> from itertools import combinations
>>> L = [1, 2, 3, 4]
>>> [",".join(map(str, comb)) for comb in combinations(L, 3)]
['1,2,3', '1,2,4', '1,3,4', '2,3,4']