簡體   English   中英

獲取單詞列表的組合

[英]Get combinations of words lists

我正在嘗試編寫一個小的腳本(bash或python),以給出單詞列表的組合,這些單詞列表的輸出格式如下。

List 1 | List 2 | List 3
Like   | Big    | Trucks
Hate   | Medium | Cars
       | Small  |

並會返回類似於以下內容的結果

Like
Hate
Like Big
Like Medium
Like Small
Like Big Trucks
Like Big Cars
Like Medium Trucks
Like Medium Cars
Like Small Trucks
Like Small Cars
Hate Big
Hate Medium
Hate Small
Hate Big Trucks
Hate Big Cars
Hate Medium Trucks
Hate Medium Cars
Hate Small Trucks
Hate Small Cars
Big Trucks
Big Cars
Medium Trucks
Medium Cars
Small Trucks
Small Cars
Trucks
Cars

注意單詞如何保持與它們來自列表的順序相同。

您正在尋找的內容可以使用itertools模塊在python中輕松完成。

import itertools

list1 = ['Like', 'Hate']
list2 = ['Big', 'Medium', 'Small']
list3 = ['Trucks', 'Cars']

sub23 =  [' '.join(x) for x in itertools.product(list2, list3)]
sub12 = [' '.join(x) for x in itertools.product(list1, list2 + sub23)]
res = list1 + sub12 + sub23 + list3
print res

輸出:

['Like',
 'Hate',
 'Like Big',
 'Like Medium',
 'Like Small',
 'Like Big Trucks',
 'Like Big Cars',
 'Like Medium Trucks',
 'Like Medium Cars',
 'Like Small Trucks',
 'Like Small Cars',
 'Hate Big',
 'Hate Medium',
 'Hate Small',
 'Hate Big Trucks',
 'Hate Big Cars',
 'Hate Medium Trucks',
 'Hate Medium Cars',
 'Hate Small Trucks',
 'Hate Small Cars',
 'Big Trucks',
 'Big Cars',
 'Medium Trucks',
 'Medium Cars',
 'Small Trucks',
 'Small Cars',
 'Trucks',
 'Cars']

附言:這種分布背后的邏輯至少可以說是“奇怪”。 通過提供背后的真實邏輯,也許您會得到更好的答案:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM