Computer >> Máy Tính >  >> Lập trình >> Python

Thêm các phần tử danh sách với nhiều danh sách dựa trên chỉ mục trong Python

Danh sách có thể được lồng vào nhau. Có nghĩa là chúng ta có các danh sách nhỏ hơn dưới dạng các phần tử bên trong một danh sách lớn hơn. Trong bài viết này, chúng tôi giải quyết thử thách khi thêm các phần tử của một danh sách đơn giản vào các phần tử của một danh sách lồng nhau. Nếu độ dài của các danh sách khác nhau thì độ dài của danh sách nhỏ hơn sẽ trở thành độ dài tối đa của danh sách kết quả.

Dưới đây là các phương pháp khác nhau để thực hiện điều này.

Sử dụng cho Vòng lặp

Trong phương pháp này, chúng tôi lấy độ dài của danh sách nhỏ hơn và lặp qua các phần tử của danh sách này, thêm nó vào các phần tử của danh sách lớn hơn. Ở đây chúng tôi sử dụng hàm append để nối từng phần tử vào danh sách kết quả.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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]]

Sử dụng enumerate ()

Hàm enumerate () nhận một tập hợp như danh sách hoặc tuple và trả về nó dưới dạng một đối tượng liệt kê. Trong cách tiếp cận này, trước tiên chúng ta tạo một vòng lặp for bên ngoài có chức năng liệt kê để lấy từng phần tử của danh sách lồng nhau và sau đó thêm chúng vào các phần tử tương ứng trong danh sách đơn giản thông qua vòng lặp for bên trong.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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]]

Sử dụng zip ()

Trong cách tiếp cận này, chúng tôi lặp lại chương trình trên nhưng sử dụng zip () thay vì liệt kê. Zip () nhận cả hai danh sách làm đầu vào của nó.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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]]