2014-11-06 40 views
1

我有兩個列表,我想本質上是基於產品(產品出現在兩個表中)的Python內部聯接。一個列表是一維的,另一個是多維的。我認爲我的問題是將它們組合起來可能是數據格式。結合可能的不同數據格式的列表

list1 = ['Product A','Product B','Product C','Product D'] 
list2 = [('Product F','10'),('Product A','30'),('Product D','40')] 

joined = [item1+item2[1:] for item1 in list1 
          for item2 in list2 
           if item1[0] == item2[0]] 
print joined 

所需的輸出:

[('Product A', '30'),('Product D','40')]

我還想最終結合本元組的元素用字符串生成一些HTML代碼:

for row in joined: 
    html_table_body = "" 
    html_table_body = html_table_body + "<tr><td>Item:" + joined[1] + "</td></tr>" 
print html_table_body 

這產生錯誤:

TypeError: cannot concatenate 'str' and 'tuple' objects 

回答

4

您可以使用一個簡單的列表理解:

[item for item in list2 if item[0] in list1] 

對於其他部分,你可以使用

html_table_body = "" 
for row in joined: 
    html_table_body += "<tr><td>Item:" + row[1] + "</td></tr>" 
print html_table_body 
+0

這個偉大的工程,我增加了一個元素的問題! – user2242044 2014-11-06 15:21:24

+1

@ user2242044檢查編輯。今後,請將這個問題作爲一個新問題,StackOverflow格式是每個帖子的一個問題。 – 2014-11-06 15:24:22

相關問題