Hãy xem xét một bộ đếm cơ bản khởi tạo từ một ánh xạ:Python - Tạo Counter() từ bản đồ, không nguyên giá trị
dict_1 = {'a': 1, 'b': 2, 'c': 3}
count_1 = Counter(dict_1)
print count_1
>>> Counter({'c': 3, 'b': 2, 'a': 1})
Tất cả những gì có ý nghĩa. Nhưng Counter cũng cho phép tôi khởi tạo từ một từ điển không có số nguyên như cả khóa và giá trị. Ví dụ:
dict_2 = {'a': 'apple', 'b': 'banana', 'c': 'cheese'}
count_2 = Counter(dict_2)
print count_2
>>> Counter({'c': 'cheese', 'b': 'banana', 'a': 'apple'})
Mã được viết ở trên là Python 2.7, nhưng tôi cũng đã thử nghiệm trên Python 3.5 và có cùng kết quả. Điều này dường như vi phạm quy tắc cơ bản nhất của bộ đếm, trong đó "các phần tử được lưu trữ dưới dạng khóa từ điển và số lượng của chúng được lưu trữ dưới dạng giá trị từ điển". Truy cập có cho phép các giá trị không phải là số nguyên không? Không nên nó ném một lỗi hay cái gì đó? Điều gì giải thích hành vi này?
Cảm ơn! Điều này rất hữu ích. – GHH
@GHH Bạn có thể xem xét chấp nhận câu trả lời nếu nó giúp –