2011-11-11 15 views
2

単語リストから、タブで区切られた単語ペアのリストを作成したいとします。私は、一つの選択肢は、 "範囲"を持つ行列を作ることができると思う。なぜなら、私はすべての単語を互いに組み合わせたいから。私は、さらなる分析を行うために、単語のペアのリストが必要です。単語リストから単語ペアのリストを作成する方法

mama 
papa 
sister 
brother 

が出力

mama papa 
sister brother 
mama sister 
papa sister 
brother mama 

でなければならず、そうで....何を知っている

誰かがこれを行うための最善の方法だろう?

+0

私は他のプロジェクトで収集したさまざまなスクリプトを試しましたが、残念ながら成功しませんでした。それはなぜ私がここに尋ねているのです –

答えて

5
words = ["mama", "papa", "sister", "brother"] 
pairs = list(itertools.permutations(words, 2)) 
print pairs 

は、私はあなたが求めれ得るものだと思う順列の使用に注意してください。

+0

おそらく 'itertools.permutations(words、2)'? 'repeat'はこの関数の無効なキーワードです。 –

+0

が修正されました。ありがとう@ロブ。 – ditkin

+0

ありがとう、それは正常に動作しますが、私は "# - * - コーディング:utf8 - * - "彼らはまだ壊れているが、ユニコードにいくつかの問題があります。出力utf8を読みやすくするにはどうすればいいですか? –

6
words = ["mama", "papa", "sister", "brother"] 
pairs = list(itertools.product(words, repeat=2)) 
print pairs 

プリント

[('mama', 'mama'), 
('mama', 'papa'), 
('mama', 'sister'), 
('mama', 'brother'), 
('papa', 'mama'), 
('papa', 'papa'), 
('papa', 'sister'), 
('papa', 'brother'), 
('sister', 'mama'), 
('sister', 'papa'), 
('sister', 'sister'), 
('sister', 'brother'), 
('brother', 'mama'), 
('brother', 'papa'), 
('brother', 'sister'), 
('brother', 'brother')] 
関連する問題