Словарь Python содержит список в качестве значения - Как обновить? - PullRequest
30 голосов
/ 24 декабря 2010

У меня есть словарь, который имеет значение в виде списка.

dictionary = { 
               'C1' : [10,20,30] 
               'C2' : [20,30,40]
             }

Допустим, я хочу увеличить все значения в списке C1 на 10, как мне это сделать?

dictionary.get('C1') дает мне список, но как мне его обновить?

Ответы [ 5 ]

33 голосов
/ 24 декабря 2010
>>> dictionary = {'C1' : [10,20,30],'C2' : [20,30,40]}
>>> dictionary['C1'] = [x+1 for x in dictionary['C1']]
>>> dictionary
{'C2': [20, 30, 40], 'C1': [11, 21, 31]}
5 голосов
/ 24 декабря 2010

Доступным значением словаря (в данном случае списком) является исходное значение, отдельное от словаря, который используется для доступа к нему.Вы должны увеличивать значения в списке одинаково, независимо от того, находится он в словаре или нет:

l = dictionary.get('C1')
for i in range(len(l)):
    l[i] += 10
3 голосов
/ 24 декабря 2010
dictionary["C1"]=map(lambda x:x+10,dictionary["C1"]) 

Должен это сделать ...

1 голос
/ 01 июля 2016

почему бы просто не пропустить .get вообще и сделать что-то подобное?:

for x in range(len(dictionary["C1"]))
    dictionary["C1"][x] += 10
1 голос
/ 24 декабря 2010

Возможно что-то вроде этого:

original_list = dictionary.get('C1')
new_list = []
for item in original_list:
  new_list.append(item+10)
dictionary['C1'] = new_list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...