web-dev-qa-db-fra.com

Python Dictionary contient List as Value - Comment mettre à jour?

J'ai un dictionnaire qui a une valeur de liste.

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

Disons que je veux incrémenter toutes les valeurs de la liste de C1 de 10, comment faire?

dictionary.get('C1') me donne la liste mais comment la mettre à jour?

32
Deepak
>>> 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]}
33
Paolo Bergantino

Une valeur de dictionnaire accédée (une liste dans ce cas) est la valeur d'origine, distincte du dictionnaire qui est utilisé pour y accéder. Vous incrémenteriez les valeurs de la liste de la même manière, que ce soit dans un dictionnaire ou non:

l = dictionary.get('C1')
for i in range(len(l)):
    l[i] += 10
5
Gabe
dictionary["C1"]=map(lambda x:x+10,dictionary["C1"]) 

Devrait le faire ...

3
Utku Zihnioglu

Probablement quelque chose comme ça:

original_list = dictionary.get('C1')
new_list = []
for item in original_list:
  new_list.append(item+10)
dictionary['C1'] = new_list
1
girasquid

pourquoi ne pas simplement ignorer .get et faire quelque chose comme ça?:

for x in range(len(dictionary["C1"]))
    dictionary["C1"][x] += 10
1
user5261053
for i,j in dictionary .items():
    if i=='C1':
        c=[]
        for k in j:
            j=k+10
            c.append(j)
            dictionary .update({i:c})
0
Loki