2017-05-28 106 views
0

我有兩個列表,如下所示,car_xy和car_id。我寫了一個示例代碼來合併兩個列表的相應元素,但沒有獲得所需的輸出。將兩個列表的相應元素合併到一個新列表中

car_xy =[(650,700),(568,231),(789,123),(968,369)] 
car_id =[284,12,466,89] 
#required_details merges the two lists 
required_details = list(set(car_xy+car_id)) 
#now if i do print required_details the ouput will be a list like; 
required_details = [284,12,(650,700),89,(568,231),466,(968,369),(789,123)] 
#the required details adds the information in list randomly. What if i want the first elements of both the list together, like 
required_details = [[284,(650,700)],[12,(568,231),[466,(789,123)],[89,(968,369)]] 

任何建議將是偉大的。

回答

3

其實你需要[list(pair) for pair in zip(car_id, car_xy)]

1

假設數組長度相同,您可以通過他們循環,這樣它們組合:

required_details = [] 
for i in range(len(car_xy)): 
    required_details.append([car_id[i], car_xy[i]]) 
+0

'AttributeError的: '名單' 對象有沒有屬性「push''(py2.7) –

+1

@AyushShanker啊是啊,實際上是.append()在python固定答案 – Quartal

+0

@Quartal它給人一種類型的錯誤:只能將元組(不是'''int')連接到元組 –

0

您正在搜索的zip功能。 https://docs.python.org/3/library/functions.html#zip

car_xy =[(650,700),(568,231),(789,123),(968,369)] 
car_id =[284,12,466,89] 
required_details = zip(car_id,car_xy) 

編輯: 加入以下使它的列表,如果有需要的突變。

req_details_list = [list(pair) for pair in required_details] 
+0

,相應的元素不會在此一起列出。 –

+0

添加列表創建的情況下,真的需要 – olisch

+0

謝謝你的意見。 –

相關問題