【发布时间】:2018-11-16 21:49:44
【问题描述】:
我有两个列表,想创建一个字典来记录元组的出现。
我当前的代码:
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)的默认整数不就是零吗?为什么('leaf', 'liquid') tuple 得到 1?
【问题讨论】:
-
你在
self_per_list_test中有一次('leaf', 'liquid'),所以它的计数是1
标签: python list dictionary tuples counter