2016-04-14 20 views
0

I, örneğin bir kelime listesi vardır:benzersiz eşdizimlilik çiftleri

[man, walk, ball] 

ve onların eş oluşumları üretmek isteyen; yani .:

[('man', 'walk'), ('man', 'ball'), ('walk', 'ball')] 

Ben şu kodu kullanın:

from itertools import product 
my_list = [man, walk, ball] 
list(product(my_list, my_list)) 

bana verir:

[('man', 'man'), ('man', 'walk'), ('man', 'ball'), ('walk', 'man'), ('walk', 'walk'), ('walk', 'ball'), ('ball', 'man'), ('ball', 'walk'), ('ball', 'ball')] 

yinelenen çiftleri atlamak için acaba?

+1

Eğer 'product' kullanmak _have_ musunuz? Neden kombinasyonları kullanmıyorsunuz? –

+2

'listesi (kombinasyonlar (my_list, r = 2))' – zezollo

+0

"Kombinasyonlar" ile çalışır. – Andrej

cevap

4

itertools.combinations(iterable, r) deneyin:

>>> import itertools 
>>> list(itertools.combinations(['man', 'walk', 'ball'], 2)) 
[('man', 'walk'), ('man', 'ball'), ('walk', 'ball')]