web-dev-qa-db-fra.com

Obtenez des combinaisons uniques d'éléments d'une liste python

Modifier: ce n'est pas un double exact de Comment obtenir toutes les combinaisons possibles des éléments d'une liste?

Cette rubrique concerne la recherche de combinaisons uniques tandis que l'autre rubrique concerne la recherche de TOUTES les combinaisons.

Si j'ai une liste python:

 L = [1,2,3,4]

quelle est la meilleure façon d'obtenir toutes les combinaisons uniques possibles de 3 éléments de la liste comme ci-dessous:

["1,2,3", "1,2,4", "2,3,4", "3,4,1"]

L'ordre des éléments dans les combinaisons n'a pas d'importance. Par exemple, "1,2,3" et "3,2,1" sera considéré comme la même combinaison.

Je peux probablement écrire quelques boucles pour ce faire, mais je pense qu'il pourrait y avoir un one-liner qui peut faire la même chose.

31
Allen

Vous avez besoin 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']
40
Ashwini Chaudhary