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

Tóm tắt theo nhóm trong Python của danh sách tuple¶

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.