2014-12-03 51 views
0

這裏的矩陣/表是我的問題:Python的 - 結合串的兩個列表來創建它們的組合

list1 = ['cake', 'pie', 'bread'] 
list2 = ['blue', 'red', 'yellow'] 

我想作一個矩陣/表/數據幀是需要這兩個列表,每個創建列表中字符串的排列。

newTable = 
       cake  pie  bread  #ColumnHeader 
#Index 
blue   cake blue pie blue bread blue 
red   cake red  pie red  bread red 
yellow   cake yellow pie yellow bread yellow 

列表1(這也是列標題)對應於該字符串對中的第一字,而列表2(索引)是第二個單詞。

我想在python中這樣做,但如果matlab更容易,那很好。謝謝!

編輯 - 並不是每個排列,而是列標題是第一個單詞而索引是第二個單詞的每個排列。

回答

1

您可以使用itertools.product這個

>>> from itertools import product 
>>> list1 = ['cake', 'pie', 'bread'] 
>>> list2 = ['blue', 'red', 'yellow'] 
>>> list(product(list1, list2)) 
[('cake', 'blue'), ('cake', 'red'), ('cake', 'yellow'), 
('pie', 'blue'), ('pie', 'red'), ('pie', 'yellow'), 
('bread', 'blue'), ('bread', 'red'), ('bread', 'yellow')] 

如果你想構建一個二維列表,你可以索引,例如[0][1]

>>> [[(i,j) for i in list1] for j in list2] 
[[('cake', 'blue'), ('pie', 'blue'), ('bread', 'blue')], 
[('cake', 'red'), ('pie', 'red'), ('bread', 'red')], 
[('cake', 'yellow'), ('pie', 'yellow'), ('bread', 'yellow')]] 
+0

謝謝網絡。我知道關於如何組合兩個列表,但踢球者(至少對我來說)是讓表的索引列表2和行標題列表1. – avidman 2014-12-03 16:38:53

+0

謝謝!這會做! – avidman 2014-12-03 16:50:10

相關問題