2017-05-16 10 views
2

2つの文字列のすべての組み合わせを印刷しようとしています。私は何を期待可能なすべての文字列の組み合わせを生成する

attributes = "old green".split() 
persons = "car bike".split() 

私がこれまで試してみました何
old car 
old bike 
green car 
green bike 

from itertools import product 

attributes = "old green".split() 
persons = "car bike".split() 

print([list(zip(attributes, p)) for p in product(persons,repeat=1)]) 
+1

あなたはこの例では、入力であると考えていますか?言葉?スペースで区切られていますか?インプットにはどのような形式がありますか? _specific_である。あなたの試みは何が間違っていますか?あなたはどんな問題に遭遇しましたか?何を修正しようとしましたか?どのような文書をお読みになりましたか? –

答えて

1

をあなたはリスト内包でこれを行うことができます。これが練習の終わりである場合、これは機能します。ある時点で別の単語リストを追加したい場合は、別の方法が必要になります。

>>> [p for p in product(attributes, persons)] 
[('old', 'car'), ('old', 'bike'), ('green', 'car'), ('green', 'bike')] 

、その後、これらの文字列連結:あなたが使用することができ、それらを個別に印刷したい場合には

>>> [' '.join(p) for p in product(attributes, persons)] 
['old car', 'old bike', 'green car', 'green bike'] 

[elem + ' ' + elem2 for elem in attributes for elem2 in persons] 
2

あなたはpersonsattributesproductへを渡す必要がありますリストの理解の代わりにfor -loop:

for p in product(attributes, persons): 
    print(' '.join(p)) 
1

あなたのようなループのための2つを使用することができます。

attributes = ['old', 'green'] 
persons = ['car', 'bike'] 
for x in attributes: 
    for y in persons: 
     print x, y 

出力:

old car 
old bike 
green car 
green bike 
関連する問題