2016-08-03 112 views
-1

這就是我所擁有的。我想一起串聯這2列表連接python中的2個列表

first_name = ['Homer', 'Marge', 'Bart', 'Lisa', 'Maggie', 
'Carl', 'Ned', 'Barney', 'Lenny', 'Otto', 'Seymour'] 

last_name = ['Simpson', 'Simpson', 'Simpson', 'Simpson', 'Simpson', 
'Carlson', 'Flanders', 'Gumble', 'Leonard', 'Mann', 'Skinner'] 

for (i, j) in zip(first_name, last_name): 
    print (first_name[i] + " " + last_name[j]) 

但有一個錯誤信息,說

TypeError: list indices must be integers, not str 
上線

與「打印」聲明

+2

你實際上是將鏈表合併到zip中,而不是連接在一起 –

+0

當你試圖自己發現錯誤並在循環中使用'print(i,j)'時,你看到了什麼? – Matthias

回答

6

你的循環實際上遍歷的元素,不是指數

for (f, l) in zip(first_name, last_name): 
    print (f + " " + l) 
0

編輯:在箱體O F使用索引,而是通過elemenets迭代更好

兩個列表有相同的長度,所以:

for i in range(len(first_name)): 
    print(first_name[i] + " " + last_name[j]) 
+1

這實際上並不是編寫Python代碼的推薦方式:您應該嘗試遍歷列表,而不是找到生成列表索引的方式。這是'zip'存在的原因。 –

0

您可以使用Python map function通過以下方式得到你想要的輸出:

print(map(lambda f,l: f + " " + l, first_name, last_name))