2013-08-13 21 views
15

Düzenleme gelen unsurların eşsiz kombinasyonu alın.bir piton listesinde

Bir piton listesi varsa:

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

sırası: tüm olası benzersiz kombinasyonları almanın en iyi yolu nedir

L = [1,2,3,4] 

aşağıda gibi listeden 3 elemanlarının kombinasyonlardaki elemanlar önemli değil. Örneğin, "1,2,3" ve "3,2,1" aynı kombinasyon olarak kabul edilecektir.

Bunu yapmak için büyük olasılıkla birkaç döngü yazabilirim ama bence aynı şeyi yapabilen bir tek katlı olabilir.

cevap

25

Sen itertools.combinations gerekir:

>>> 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']