Python créer des clés avec une boucle

Résolu/Fermé
Thomasdu33 - 20 mars 2022 à 16:46
 Thomasdu33 - 21 mars 2022 à 16:27
Bonjour,

J'aimerais savoir si c'est possible de créer plusieurs clés avec une boucle, et les mettre dans un dictionnaire ?
A voir également:

2 réponses

jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024 9 350
20 mars 2022 à 16:56
Bonjour,

Oui :
d = {}
for i in range(5):
    d['cle'+str(i)]='val'+str(i)
print(d) 

0
Merci, mais j'aimerais n'avoir que les clés quand je fais:

print(d)
0
jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024 9 350
20 mars 2022 à 18:26
0
Thomasdu33 > jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024
20 mars 2022 à 18:34
Ce n'est pas ça ce que je voulais faire,

Je voulais avoir comme résultat quelque chose comme ça seulement quand on print:

{'Apple': , 'Pear':, 'Peach':, 'Banana':} ou sans les ":"


Mais maintenant, j'essais de mettre des valeurs d'une lists dans des clé, mais il n'y a pas le même nombre valeurs, et ça avec une boucle
0
jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024 9 350 > Thomasdu33
20 mars 2022 à 19:47
il y a plusieurs types de récupération des clés dans le lien.

puis pour la suite, donne des exemples de la liste et de ce que tu veux obtenir, car c'est comme ta première question, ce n'est pas assez explicite, détaillé
0
Thomasdu33 > jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024
21 mars 2022 à 10:54
C'est bon, j'ai finis ce que je voulais faire.
Je voulais faire quelque chose comme ça avec les dictionnaires :

def devoir():

  dict1 = {}
  dict2 = {}
  cle_boucle = [2, 3, 4, 5, 6, 7, 8, 9, 10]


  for x in cle_boucle:
    list_iteration = []
    x_original = x
    while x != 1: 
      if x % 2 == 1: 
        x = x * 3 + 1 
      else:   
        x = x / 2 
      list_iteration.append(x)
    dict1[x_original]=sorted(list_iteration, reverse = True)
  
    maximum = max(list_iteration)
    dict2[x_original]=maximum
  
  dico2 = sorted(dict2.items(), key=lambda y: y[1], reverse=True)  
  
  dictionnaire1 = print("dictionnaire 1:"+ str(dict1))
  ligne = print("-"*60)
  dictionnaire2 = print("dictionnaire 2:"+ str(dico2))
  
  
devoir()



Merci à vous,
0
jee pee Messages postés 40279 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 septembre 2024 9 350 > Thomasdu33
Modifié le 21 mars 2022 à 11:41
Si tu as ce que tu voulais, bien.

Quelques observations :
- on pourrait se passer de cle_boucle avec un for x in range(2,11)
- j'éviterais de toucher à x dans sa boucle, surtout que tu dois le sauvegarder pour le conserver, utiliser plutôt une autre variable pour tes calculs y=x, while y ...
- ton dico2 n'est plus un dictionnaire, c'est un tableau de tuples
- je ne vois pas pourquoi tu affectes une valeur, créant des variables supplémentaires, avec les print,
dictionnaire1 = print("dic... pourquoi pas tout simplement print("dic... ?
0