在Python中基於索引使用多列表新增列表元素


列表可以巢狀。這意味著我們在更大的列表中嵌套了更小的列表作為元素。在這篇文章中,我們解決了將簡單列表的元素新增到巢狀列表元素的挑戰。如果列表的長度不同,則較短列表的長度將成為結果列表的最大長度。

以下是實現此目的的各種方法。

使用for迴圈

在這種方法中,我們取較短列表的長度,並遍歷此列表的元素,將其新增到較長列表的元素中。這裡我們使用append函式將每個元素附加到結果列表中。

示例

 線上演示

simple_list = [25, 35, 45, 55, 65]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15],[5,6]]
result_list = []

for n in range(len(simple_list)):
   var = []
   for m in nested_list[n]:
      var.append(m + simple_list[n])
   result_list.append(var)
print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

輸出

執行上述程式碼將得到以下結果:

The first list : [25, 35, 45, 55, 65]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15], [5, 6]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]

使用enumerate()

enumerate()函式接受列表或元組等集合,並將其作為enumerate物件返回。在這種方法中,我們首先建立一個外部for迴圈,該迴圈具有enumerate函式以獲取巢狀列表的每個元素,然後透過內部for迴圈將其新增到簡單列表中的相應元素。

示例

 線上演示

simple_list = [25, 35, 45, 55, 65,25]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15]]
result_list = []

# using enumerate
result_list = [[val + simple_list[p] for val in q] for p, q in enumerate(nested_list)]
print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

輸出

執行上述程式碼將得到以下結果:

The first list : [25, 35, 45, 55, 65, 25]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]

使用zip()

在這種方法中,我們重複上述程式,但使用zip()代替enumerate。zip()將兩個列表作為輸入。

示例

 線上演示

simple_list = [25, 35, 45, 55, 65,25]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15]]
result_list = []

result_list = [[w + u for w in v ]for u, v in zip(simple_list, nested_list)]

print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

輸出

執行上述程式碼將得到以下結果:

The first list : [25, 35, 45, 55, 65, 25]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]

更新於:2020年2月18日

519 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告