9
votes

Python: remplacer toutes les valeurs dans un dictionnaire

est-il possible de remplacer toutes les valeurs d'un dictionnaire, quelle que soit la valeur, avec l'entier 1?

Merci!


1 commentaires

Avant de poster ici, nous suggérons donc tous d'essayer quelque chose et éventuellement le poster, car le sens de cette communauté ne doit pas fournir de solutions prêts à l'emploi, mais aider les gens à apprendre et à mieux comprendre leurs problèmes :)


4 Réponses :


0
votes

Oui, c'est possible. Itérate à chaque touche du dictionnaire et définissez la valeur correspondante à 1.


0 commentaires

18
votes

Bien sûr, vous pouvez faire quelque chose comme: xxx

qui crée un nouveau dictionnaire d qui plante toutes les touches de d (le ancien) à 1 .


4 commentaires

Merci, je cherchais quelque chose comme ça. Je n'étais tout simplement pas tout à fait sûr de ce que le format approprié était et que la dernière fois que j'ai essayé de poster quelque chose sur les dictionnaires, j'ai été ridiculisé; D'où la raison pour laquelle je n'ai pas posté ma tentative infructueuse ici.


Pour modifier le dictionnaire d'origine: pour k in d: d [k] = 1


Encore une autre manière: d = d.fromkeys (D, 1)


Dieu, c'est beau.



0
votes
a = {1:2, 2:2,3:2}
a = {x:1 for (x,_) in a.iteritems()}
print a
{1: 1, 2: 1, 3: 1}

2 commentaires

Sûrement juste {k: 1 pour k dans a} ... Pas besoin d'obtenir chaque article uniquement pour jeter la valeur ...


Notez que cela ne modifie pas la dicte d'origine. Ce n'est pas vraiment une question à moins que vous prévoyez de l'encapsuler dans une fonction: def surwrite_dict_values ​​(d, nouvel_value): ...



16
votes

Vous pouvez utiliser une compréhension dictée (comme d'autres personnes ont dit) pour créer un nouveau dictionnaire avec les mêmes clés que l'ancien dictionnaire, ou si vous devez faire tout ce qui est en place:

d.update( (k,1) for k in d )


0 commentaires