这是我的输入:
Blue -> dress,jeans,hat
Gold -> dress,t-shirt,boxers
White -> briefs,tanktop
Blue -> dress,gloves
我想要什么(结果),口述式,如下所示:
result{Blue:{dress:2,jeans:1,hat:1,gloves:1},
Gold:{dress:1,t-shirt:1,boxers:1},
White:{briefs:1,tanktop:1}} #pseudo code
我尝试的:
n = int(input())
result = {}
for i in range(1, n+1):
input_row = input()
input_parts = input_row.split(' -> ')
color = input_parts[0]
items = input_parts[1].split(',')
for item in items:
if color not in result:
result[color] = color
if item not in result[color]:
dict_items = {item: }
result[color] = dict_items
else:
result[color][item] += 1
print(result)
问题来自此部分,因为它总是覆盖(正常)它:
result[color] = dict_items
我已经试过了.append
、.setdefault
、.update
,但没有任何结果。你知道吗
其他的解决方案可能是collections.counter
。你知道吗
使用
collections.defaultdict
和Counter
例如:
输出:
无进口
输出:
另一种方法是单独使用
defaultdict(int)
:不过,我会使用Rakesh的
Counter
方法。你知道吗相关问题 更多 >
编程相关推荐