2016-04-14 9 views
0

私には、例えば、単語のリストを持っている:ユニークな共起ペアは

[man, walk, ball] 

と私は彼らの共起を生成したいです。すなわち:

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

私は次のコードを使用し

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

私与える:

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

私は、重複ペアを省略するか疑問?

+1

あなたは 'product'を使用する_have_ますか?なぜ「組み合わせ」を使わないのですか? –

+2

'list(組み合わせ(my_list、r = 2))' – zezollo

+0

'組み合わせ 'で動作します。 – Andrej

答えて

4

itertools.combinations(iterable, r)試してみてください。

>>> import itertools 
>>> list(itertools.combinations(['man', 'walk', 'ball'], 2)) 
[('man', 'walk'), ('man', 'ball'), ('walk', 'ball')] 
関連する問題