Trong hướng dẫn này, chúng ta sẽ viết một chương trình thêm tất cả các giá trị có cùng khóa vào các danh sách khác nhau. Hãy xem một ví dụ để hiểu rõ điều đó.
Đầu vào
list_one = [('a', 2), ('b', 3), ('c', 5)] list_two = [('c', 7), ('a', 4), ('b', 2)]
Đầu ra
[('a', 6), ('b', 5), ('c', 12)]
Làm theo các bước đã cho để giải quyết vấn đề.
- Khởi tạo danh sách.
- Chuyển danh sách đầu tiên thành từ điển bằng cách sử dụng dict và lưu trữ danh sách đó trong một biến.
- Lặp lại danh sách thứ hai và thêm giá trị tương ứng vào khóa có trong từ khóa.
- In kết quả.
Ví dụ
# initializing the lists list_one = [('a', 2), ('b', 3), ('c', 5)] list_two = [('c', 7), ('a', 4), ('b', 2)] # convering list_one to dict result = dict(list_one) # iterating over the second list for tup in list_two: # checking for the key in dict if tup[0] in result: result[tup[0]] = result.get(tup[0]) + tup[1] # printing the result as list of tuples print(list(result.items()))
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
[('a', 6), ('b', 5), ('c', 12)]
Chúng tôi có thể giải quyết vấn đề trên mà không cần lặp qua bất kỳ danh sách nào bằng cách sử dụng Bộ sưu tập bộ đếm . Hãy xem nó.
Ví dụ
# importing the Counter from collections import Counter # initializing the lists list_one = [('a', 2), ('b', 3), ('c', 5)] list_two = [('c', 7), ('a', 4), ('b', 2)] # getting the result result = Counter(dict(list_one)) + Counter(dict()) # printing the result as list of tuples print(list(result.items()))
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
[('a', 6), ('b', 5), ('c', 12)]
Kết luận
Nếu bạn có bất kỳ nghi ngờ nào về hướng dẫn này, hãy đề cập đến chúng trong phần bình luận.