364 votes

Comment initialiser un dict avec des clés à partir d'une liste et valeur vide en Python?

Je voudrais obtenir, à partir de:

keys = [1,2,3]

ce:

{1: None, 2: None, 3: None}

Est-il un pythonic moyen de le faire?

C'est un laid:

>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}

545voto

Thomas Wouters Points 38811

dict.fromkeys([1, 2, 3, 4])

C'est en fait une classmethod, de sorte qu'il fonctionne pour les dict-les sous-classes (comme collections.defaultdict). Le second argument facultatif spécifie la valeur à utiliser pour les clés (valeur par défaut: None.)

358voto

Adrien Plisson Points 9750

personne ne se souciait de donner un dict-compréhension de la solution ?

>>> keys = [1,2,3,5,6,7]
>>> {key: None for key in keys}
{1: None, 2: None, 3: None, 5: None, 6: None, 7: None}

81voto

Dominic Cooney Points 2876
dict.fromkeys(keys, None)

15voto

inspectorG4dget Points 25092
d = {}
for i in list:
    d[i] = None

0voto

Zv_oDD Points 421

Se sent plus détaillé pour montrer un tuple comme une clé:valeur paire.

{(key, None) for key in my_list}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X