Python créer des clés avec une boucle

Résolu
Thomasdu33 -  
 Thomasdu33 -
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 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
Bonjour,

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

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

print(d)
0
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
0
Thomasdu33 > jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716 > Thomasdu33
 
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 41513 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716 > Thomasdu33
 
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