我正在试用带有lamba函数的defaultdict。但是,我无法得到我想要的输出。我将用更多的细节来演示。下面是我的代码:
from collections import defaultdict
the_list = [
('Samsung', 'Handphone', 10),
('Samsung', 'Handphone', -1),
('Samsung', 'Tablet', 10),
('Sony', 'Handphone', 100)
]
d = defaultdict(lambda: defaultdict(int))
for brand, thing, quantity in the_list:
d[brand][thing] += quantity
我的结果是:
defaultdict(<function <lambda> at 0x02715C70>, {'Sony': defaultdict(<type
'int'>, {'Handphone': 100}), 'Samsung': defaultdict(<type 'int'>, {'Handphone':
9, 'Tablet': 10})})
我希望我的结果是:
{
'Samsung': {
'Handphone': 9,
'Tablet': 10
},
'Sony': {
'Handphone': 100
}
}
我应该如何删除defaultdict(<function <lambda> at 0x02715C70>, {'Sony': defaultdict(<type int'>,
以获得所需的输出。谢谢您!你知道吗
如果要删除类型信息,请尝试以JSON格式转储数据。你知道吗
在顶部插入:
下面是:
你的代码应该这样打印出来:
如果顺序无关紧要,这将是一个解决办法。你知道吗
只需将每个
defaultdict
转换回一个规则的dict
,就可以使用dict理解轻松完成:相关问题 更多 >
编程相关推荐