J'ai un dictionnaire comme:

d = {c1: l1, c2: l2, c3: l3, ......., cn: ln}

Où c1, c2, .... cn sont des chaînes et l1, l2, ... l3 sont des listes.

Maintenant, j'ai une fonction où la liste doit être mise à jour, pour une paire de variables c, x:

1. si c est en d:

Trouvez la (clé, valeur) pour c et mettez à jour le l correspondant avec x

2. si c n'est pas en d:

Créer une paire cm: lm en d

Jusqu'à présent, ce que j'ai essayé c'est:

if c in d:
    d.update({cn:ln.append(x)})
else:
    d.update({cm:lm.insert(x)})

Mais le code ne fonctionne pas comme prévu.

Tout pointeur expliquant pourquoi le code ne fonctionne pas serait utile, et toute suggestion concernant le code pouvant le faire fonctionner est la bienvenue.

P.S: Les valeurs c et x sont passées comme arguments à une fonction, où toute la mise à jour a lieu.

Pour plus de précision, j'exécute Python 2.7, sur PyCharm, sur Windows 10.

Éditer:

 A sample output

0
Yogesh Sudheer Modak 19 mars 2019 à 10:27

2 réponses

Meilleure réponse
if c in d:
    # d[c] corresponds to the list you want to update
    d[c].append(x)
    # the append function directly modifies the list at d[c], 
    # so we don't have to do any re-assignment
else:
    # d[c] does not exist, so we create a new list with your item
    d[c] = [x]
1
codelessbugging 19 mars 2019 à 07:34

Veuillez consulter https://repl.it/repls/ExternalCornyOpendoc Exemple de code comme ci-dessous :

d = {
  "Key1":[1,2,3],
  "Key2":[11,12,13]
}

def test(c, x):
  if c in d:
    d[c].append(x);
  else:
    d[c] = [x];
  print(d)

test("Key1", 12)
test("Key3", 122)
1
Robin Ding 19 mars 2019 à 07:35