У меня есть два списка, и я хотел бы создать словарь для записи появления кортежей.
Мой текущий код:
tup_to_find_test = [('good', 'pea'), ('leaf', 'sweet')]
self_per_list_test = [('leaf', 'liquid'), ('leaf', 'sweet'), ('leaf', 'sweet'),('good', 'pea'),('good', 'pea'),('good', 'pea')]
from collections import defaultdict
tup_dict_test = defaultdict(int)
for tup_to_find_test in self_per_list_test:
tup_dict_test[tup_to_find_test]+=1
Мой результат:
defaultdict(int, {('leaf', 'liquid'): 1, ('leaf', 'sweet'): 1, ('good', 'pea'): 3})
Мой желаемый результат:
('leaf', 'liquid'): 0, ('leaf', 'sweet'): 2, ('good', 'pea'): 3})
Я не знаю, почему счетчик ('leaf', 'liquid')
равен 1. Разве целое число по умолчанию defaultdict(int)
не равно нулю?Почему я получил 1 за ('leaf', 'liquid')
кортеж?