0
votes

Existe-t-il un moyen de générer automatiquement des noms de clés et des valeurs similaires dans un dictionnaire avec une boucle?

Je souhaite créer un dictionnaire en utilisant une boucle ou une technique similaire. Quelque chose comme l'attribution de variable ci-dessous est possible.

{'Item-1': 1, 'Item-2':3, 'Item-3':3 ....} 

Bien que la question à laquelle je suis bloqué- Comment puis-je générer des noms similaires pour les clés d'élément? Donnant un exemple ci-dessous:

my_dict = {v:int(v*random()) for v in range(10)}

Merci d'avance!


1 commentaires

La clé peut être une expression arbitraire, tout comme la valeur. Vous n'êtes pas obligé d'utiliser uniquement v pour la clé dans la compréhension de dictée,


3 Réponses :


0
votes

Créez des clés et des valeurs et ajoutez-les à my_dict dans une boucle

my_dict = {}

for v in range(10): my_dict[f'Item-{v}'] = v

print(my_dict)

{'Item-0': 0, 'Item-1': 1, 'Item-2': 2, 'Item-3': 3, 'Item-4': 4, 'Item-5': 5, 'Item-6': 6, 'Item-7': 7, 'Item-8': 8, 'Item-9': 9}


1 commentaires

Pourquoi devrais-je assigner 'v = np.arrange (0,10,1)' pour? Je ne peux pas simplement affecter 'my_dict [clé] = v'? Et la solution ci-dessus est longue pour moi, c'est pourquoi j'ai demandé une manière plus rapide. Toujours merci pour la réponse.



0
votes

Vous pouvez également utiliser la compréhension de liste dans les dictionnaires.

from random import randint

dic = {f"item-{i}": randint(0, 10) for i in range(1, 11)}


print(dic)


2 commentaires

Ce n'est pas une compréhension de liste. Ceci est juste une compréhension dict. Ce que vous faites, c'est d'utiliser une f-string comme clé, plutôt que simplement la variable i .


c'est ce qu'il demande n'est-ce pas?



0
votes
from random import random

my_dict = {f'item-{v+1}': int(v*random()) for v in range(10)}
print(my_dict)
Output:{'item-1': 0, 'item-2': 0, 'item-3': 1, 'item-4': 1, 'item-5': 0, 'item-6': 3, 'item-7': 2, 'item-8': 4, 'item-9': 6, 'item-10': 2}This uses an f-string to create the key, the corresponding value is randomly generated like in your question.

1 commentaires

Merci beaucoup. Exactement ce que je cherchais.