Python 多列表中相同索引處的元素分組
在本教程中,我們將編寫一個程式,將來自不同列表的相同索引處的元素組合到一個列表中。這裡有一個限制條件。所有列表必須具有相同的長度。讓我們看一個例子來更清楚地理解它。
輸入
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
輸出
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我們可以用不同的方法解決它。讓我們看看如何使用普通迴圈來解決。
- 用列表初始化列表。
- 初始化一個空列表。
- 將變數 **index** 初始化為 0。
- 迭代子列表長度次
- 將一個空列表追加到上一個列表
- 迭代列表長度次。
- 將 **lists[current_index][index]** 追加到 **result[index]
- 列印結果。
示例
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # empty list result = [] # variable to 0 index = 0 # iterating over the sub_list length (3) times for i in range(len(lists[0])): # appending an empty sub_list result.append([]) # iterating lists length (3) times for j in range(len(lists)): # adding the element to the result result[index].append(lists[j][index]) # moving to the next index index += 1 # printing the result print(result)
輸出
如果您執行以上程式碼,則將獲得以下結果。
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我們可以使用 **zip** 函式毫不費力地解決它。**zip** 函式為您提供了我們想要的元組中的所有索引元素。讓我們看看程式碼。
示例
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(zip(*lists)))
輸出
如果您執行以上程式碼,則將獲得以下結果。
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
我們可以透過遍歷列表將元組轉換為列表。它可以以不同的方式完成。我們將使用另一個名為 **map** 的函式將所有元組轉換為列表。這是一行程式碼。
示例
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(map(list, zip(*lists))))
輸出
如果您執行以上程式碼,則將獲得以下結果。
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我們使用 **map** 遍歷列表並將每個元組轉換為列表。您也可以使用迴圈來執行相同的操作。試試看。
結論
如果您在本教程中有任何疑問,請在評論部分中提及。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP