Désolé pour cette question de base, mais mes recherches à ce sujet ne donnent rien d'autre que d'obtenir la clé d'un dictionnaire en fonction de sa valeur, ce que je préférerais ne pas utiliser, je veux simplement le texte/nom de la clé et je crains que la recherche par valeur peut finir par retourner 2 clés ou plus si le dictionnaire a beaucoup d'entrées ... Voici ce que j'essaie de faire:
mydictionary={'keyname':'somevalue'}
for current in mydictionary:
result = mydictionary.(some_function_to_get_key_name)[current]
print result
"keyname"
La raison en est que je les imprime dans un document et que je souhaite utiliser le nom de la clé et la valeur correspondante.
J'ai vu la méthode ci-dessous mais cela semble simplement renvoyer la valeur de la clé
get(key[, default])
Vous devriez parcourir les clés avec:
for key in mydictionary:
print "key: %s , value: %s" % (key, mydictionary[key])
Si vous souhaitez imprimer la clé et la valeur, utilisez ce qui suit:
for key, value in my_dict.iteritems():
print key, value
La raison en est que je les imprime dans un document et que je souhaite utiliser le nom de la clé et la valeur correspondante.
Sur la base de l'exigence ci-dessus, voici ce que je suggérerais:
keys = mydictionary.keys()
keys.sort()
for each in keys:
print "%s: %s" % (each, mydictionary.get(each))
Si le dictionnaire contient une paire comme celle-ci:
d = {'age':24}
alors vous pouvez obtenir comme
field, value = d.items()[0]
Pour Python 3.5, procédez comme suit:
key = list(d.keys())[0]
keys=[i for i in mydictionary.keys()]
ou keys = list(mydictionary.keys())
Aussi simple que cela:
mydictionary={'keyname':'somevalue'}
result = mydictionary.popitem()[0]
Vous allez modifier votre dictionnaire et devriez d'abord en faire une copie
Itérer sur le dictionnaire (i) retournera la clé, puis l'utilisera (i) pour obtenir la valeur
for i in D:
print "key: %s, value: %s" % (i, D[i])
Vous pouvez simplement utiliser *
qui décompresse les clés du dictionnaire. Exemple:
d = {'x': 1, 'y': 2}
t = (*d,)
print(t) # ('x', 'y')
Ce que je fais parfois, c’est que je crée un autre dictionnaire simplement pour pouvoir accéder à ce que j’ai besoin d’accéder sous forme de chaîne. Ensuite, j'itère sur plusieurs dictionnaires des clés correspondantes pour construire, par exemple. une table avec la première colonne comme description.
dict_names = {'key1': 'Text 1', 'key2': 'Text 2'}
dict_values = {'key1': 0, 'key2': 1}
for key, value in dict_names.items():
print('{0} {1}'.format(dict_names[key], dict_values[key])
Vous pouvez facilement faire correspondre une grande quantité de dictionnaires de données (j'aime le fait qu'avec un dictionnaire, vous pouvez toujours vous référer à quelque chose de bien connu comme le nom de clé).
oui, j'utilise des dictionnaires pour stocker les résultats des fonctions. Je n'ai donc pas besoin de les exécuter à chaque fois que je les appelle une seule fois, puis d'accéder aux résultats à tout moment.
EDIT: dans mon exemple, le nom de clé n'a pas vraiment d'importance (j'aime personnellement utiliser les mêmes noms de clé car il est plus facile de choisir une seule valeur dans l'un de mes dictionnaires correspondants), assurez-vous simplement que le nombre de clés dans chaque dictionnaire est correct. le même
Pour python 3 Si vous voulez obtenir uniquement les clés, utilisez ceci. Remplacez print (key) par print (values) si vous voulez les valeurs.
for key,value in my_dict:
print(key)