2016-12-13 3 views
1

У меня есть словарь python, который выглядит так.Подведение нескольких значений каждого ключа в dict?

{ 'item1' : [1,2,3,4,5,6], 
    'item2' : [2,3,1], 
    . 
    . 
    . 
    'item n' : [4,2,4,3,2] 
} 

Теперь мое требование заключается в том, что я хочу, чтобы добавить числовые значения этого Словаре &, чтобы показать его, как: -

{ 'item1' : [21], 
    'item2' : [6], 
     . 
     . 
     . 
    'item n' : [15] 
} 

Я просто хочу несколько значений каждого ключа суммируются & отображается. FYI, я использую функцию append. Ниже мой код.

for row in range(2,sheet2.max_row): 
    for column in "D": 
     cell_name = "{}{}".format(column, row) 
    for column2 in "P": 
     cell_name2 = "{}{}".format(column2,row) 
     arrdata2dict.setdefault(sheet2[cell_name].value,[]) 
     arrdata2dict[sheet2[cell_name].value].append(sheet2[cell_name2].value) 

ответ

2

Вы можете создать словарь с суммами на лету:

Result = dict([(key, sum(values)) for key, values in yourDict.items()]) 
# or... 
Result = {key: sum(values) for key, values in yourDict.items()} 

Здесь , значения нового словаря будут числами, но если вы действительно, то они должны быть списками, вы можете приложить вызов к sum в квадратные скобки: [sum(values)].

+0

Привет ForceBru, да я попытался сумма(), но это не сработало, благодаря вашему этому решению, он работает – penta

2

Это кажется излишне сложным. Если у Вас есть свой вход в качестве

inpt = { 'item1' : [1,2,3,4,5,6], 
     'item2' : [2,3,1], 
     . 
     . 
     . 
     'item n' : [4,2,4,3,2] 
     } 

вы можете использовать dictionary comprehension вместо:

out = {k: [sum(inpt[k])] for k in inpt.keys()} 
0
items = {'item1' : [1,2,3,4,5,6], 
    'item2' : [2,3,1], 
    'item3' : [4,2,4,3,2] 
} 

for key, values in items.items(): 
    items[key] = sum(values) 
+0

ответы, которые не содержат каких-либо объяснений, часто посланный для рассмотрения и, возможно, могут быть удалены. Можете ли вы объяснить, почему это правильный ответ и насколько он улучшает пример опроса? – ImportanceOfBeingErnest

Смежные вопросы