การแก้ปัญหาข้างต้นนั้นยอดเยี่ยมสำหรับสถานการณ์ที่คุณมีจำนวนCounter
น้อย หากคุณมีรายการใหญ่ของพวกเขาบางสิ่งเช่นนี้ดีกว่ามาก:
from collections import Counter
A = Counter({'a':1, 'b':2, 'c':3})
B = Counter({'b':3, 'c':4, 'd':5})
C = Counter({'a': 5, 'e':3})
list_of_counts = [A, B, C]
total = sum(list_of_counts, Counter())
print(total)
# Counter({'c': 7, 'a': 6, 'b': 5, 'd': 5, 'e': 3})
วิธีการแก้ปัญหาดังกล่าวเป็นข้อสรุปCounter
โดย:
total = Counter()
for count in list_of_counts:
total += count
print(total)
# Counter({'c': 7, 'a': 6, 'b': 5, 'd': 5, 'e': 3})
สิ่งนี้ทำสิ่งเดียวกัน แต่ฉันคิดว่ามันจะช่วยให้เห็นว่ามันทำอะไรได้อย่างมีประสิทธิภาพภายใต้
sum(counters)
ไม่ทำงานโชคไม่ดี