valor usar sintaxis recorrer elementos ejemplo diccionario clave cargar buscar agregar acceder python dictionary key

python - usar - Cómo imprimir la clave de un diccionario?



sintaxis diccionario en python (17)

Ya encontré mi pregunta en SO, pero no fue respondida directamente. Me gustaría imprimir una clave de diccionario de Python específica:

mydic = {} mydic[''key_name''] = ''value_name''

Ahora puedo verificar si mydic.has_key(''key_name'') , pero lo que me gustaría hacer es imprimir el nombre de la clave ''key_name'' . Por supuesto, podría usar mydic.items() , pero no quiero todas las claves enumeradas, simplemente una clave específica. Por ejemplo, esperaría algo como esto (en pseudo-código):

print "the key name is", mydic[''key_name''].name_the_key(), "and its value is", mydic[''key_name'']

¿Hay algún método name_the_key() para imprimir un nombre de clave?

Editar: OK, muchas gracias muchachos por sus reacciones! :) Me doy cuenta de que mi pregunta no está bien formulada y es trivial. Me confundí porque me di cuenta de que key_name y mydic[''key_name''] son dos cosas diferentes y pensé que sería incorrecto imprimir el key_name fuera del contexto del diccionario. ¡Pero de hecho puedo usar simplemente ''key_name'' para referirme a la clave! :)


¿Qué hay de malo con usar ''key_name'' lugar, incluso si es una variable?


Además, puedes usar ...

print(dictionary.items()) #prints keys and values print(dictionary.keys()) #prints keys print(dictionary.values()) #prints values


Asegúrate de hacer

dictionary.keys() # rather than dictionary.keys


Busqué esta pregunta, porque quería saber cómo recuperar el nombre de "la clave" si mi diccionario solo tenía una entrada. En mi caso, la clave era desconocida para mí y podría ser cualquier cantidad de cosas. Aquí es lo que se me ocurrió:

dict1 = {''random_word'': [1,2,3]} key_name = str([key for key in dict1]).strip("''[]''") print(key_name) # equal to ''random_word'', type: string.


Como todos intentamos adivinar lo que podría significar "imprimir un nombre de clave", lo intentaré. ¿Quizás desea una función que toma un valor del diccionario y encuentra la clave correspondiente? Una búsqueda inversa?

def key_for_value(d, value): """Return a key in `d` having a value of `value`.""" for k, v in d.iteritems(): if v == value: return k

Tenga en cuenta que muchas teclas pueden tener el mismo valor, por lo que esta función devolverá alguna clave que tenga el valor, quizás no la que usted tenía la intención.

Si necesita hacer esto con frecuencia, tendría sentido construir el diccionario inverso:

d_rev = dict(v,k for k,v in d.iteritems())


El nombre de la clave ''key_name'' es key_name, por lo tanto, print ''key_name'' o cualquier variable que tengas que lo represente.


Hmm, creo que lo que querrías hacer es imprimir todas las claves en el diccionario y sus respectivos valores?

Si es así, quiere lo siguiente:

for key in mydic: print "the key name is" + key + "and its value is" + mydic[key]

Asegúrate de usar + ''s en lugar de'' también. La coma pondrá cada uno de esos elementos en una línea separada, creo, donde como más los pondrá en la misma línea.


O puedes hacerlo de esa manera:

for key in my_dict: print key, my_dict[key]


Probablemente la forma más rápida de recuperar solo el nombre de la clave:

mydic = {} mydic[''key_name''] = ''value_name'' print mydic.items()[0][0]

Resultado:

key_name

Convierte el dictionary en una list luego enumera el primer elemento, que es el dict completo, y luego enumera el primer valor de ese elemento, que es: key_name


Prueba esto:

def name_the_key(dict, key): return key, dict[key] mydict = {''key1'':1, ''key2'':2, ''key3'':3} key_name, value = name_the_key(mydict, ''key2'') print ''KEY NAME: %s'' % key_name print ''KEY VALUE: %s'' % value


Si quiere obtener la clave de un valor único, lo siguiente sería útil:

def get_key(b): # the value is passed to the function for k, v in mydic.items(): if v.lower() == b.lower(): return k

De manera pitonica:

c = next((x for x, y in mydic.items() if y.lower() == b.lower()), / "Enter a valid ''Value''") print(c)


Un diccionario tiene, por definición, un número arbitrario de claves. No hay "la llave". Tiene el método keys() , que le proporciona una list python de todas las claves, y tiene el método iteritems() , que devuelve pares clave-valor, por lo que

for key, value in mydic.iteritems() : print key, value

Versión Python 3:

for key, value in mydic.items() : print (key, value)

Así que tienes un control sobre las teclas, pero solo significan sentido si se combinan con un valor. Espero haber entendido tu pregunta.


# highlighting how to use a named variable within a string: dict = {''a'': 1, ''b'': 2} # simple method: print "a %(a)s" % dict print "b %(b)s" % dict # programmatic method: for key in dict: val = ''%(''+key+'')s'' print key, val % dict # yields: # a 1 # b 2 # using list comprehension print "/n".join(["%s: %s" % (key, (''%(''+key+'')s'') % dict) for key in dict]) # yields: # a: 1 # b: 2


dic = {"key 1":"value 1","key b":"value b"} #print the keys: for key in dic: print key #print the values: for value in dic.itervalues(): print value #print key and values for key, value in dic.iteritems(): print key, value


dict = {''name'' : ''Fred'', ''age'' : 100, ''employed'' : True } # Choose key to print (could be a user input) x = ''name'' if x in dict.keys(): print(x)


import pprint pprint.pprint(mydic.keys())


key_name = ''...'' print "the key name is %s and its value is %s"%(key_name, mydic[key_name])