2011-06-10 125 views
2

我之前問過這個問題,但是關於另一種編程語言。查找所有可能的組合

假設我有一些根,前綴和後綴。

roots = ["car insurance", "auto insurance"] 
prefix = ["cheap", "budget"] 
suffix = ["quote", "quotes"] 

Python中是否有一個簡單的函數,它允許我構造三個字符向量的所有可能的組合。

所以我想要一個列表或其他數據結構,它返回每個字符串的所有可能組合的以下列表。

cheap car insurance quotes 
cheap car insurance quotes 
budget auto insurance quotes 
budget insurance quotes 
... 
+1

重複的(HTTP [名單列表的所有組合]://計算器。 COM /問題/ 798854 /所有組合-的-A-列表中的鏈表)。和其他許多人:http://stackoverflow.com/search?q=python+all+combinations。 – FMc 2011-06-10 21:50:50

回答

9

使用itertools.product()

for p, r, s in itertools.product(prefix, roots, suffix): 
    print p, r, s 
2

沒有必要導入庫,Python有此內置語法了。而不僅僅是印刷,它返回一個數據結構,像你這樣的要求,你會得到加入串在一起,以引導:

combinations = [ 
    p + " " + t + " " + s 
    for t in ts for p in prefix for s in suffix]