2
votes

Comment créer un dictionnaire sans utiliser une boucle for en 1 ligne de code?

Voici mon code:

dictionary = {}
for i in range(2, 15):
    dictionary[str(i)] = 0

Est-il possible de le créer avec une seule ligne de code?


0 commentaires

4 Réponses :


6
votes

Oui:

dictionary = {str(i): 0 for i in range(2, 15)}

Cela s'appelle un compréhension du dictionnaire . Il existe des structures de syntaxe similaires pour les listes, les générateurs et les ensembles.


0 commentaires

7
votes

Utiliser:

print(dict.fromkeys([str(i) for i in range(2,15)],0))

Ou si vous voulez des chaînes pour les clés du dictionnaire:

print(dict.fromkeys(map(str,range(2,15)),0))

Ou une autre façon de créer des chaînes de clés: p >

print(dict.fromkeys(range(2,15),0))


0 commentaires

2
votes

Jetez un œil à la compréhension du dictionnaire

dictionary  = {str(i):0 for i in range(2,15)}


2 commentaires

Et maintenant, c'est la réponse de L3viathan


Fait le changement, mais comme vous l'avez souligné, c'est maintenant la réponse de L3viathan :)



3
votes

Juste pour ajouter une autre manière, vous pouvez également créer à partir de zip:

dictionary = dict(zip(range(2,15),iter(int, 1)))


0 commentaires