¿Cómo puedo obtener la clave del diccionario como variable directamente en Python (no por búsqueda de valor)?

Lo siento por esta pregunta básica, pero mis búsquedas en esto no muestran otra cosa que no sea cómo obtener la clave de un diccionario en función de su valor que preferiría no usar, ya que simplemente quiero el texto / nombre de la clave y me preocupa que la búsqueda por valor puede terminar devolviendo 2 o más claves si el diccionario tiene muchas entradas … lo que estoy tratando de hacer es esto:

mydictionary={'keyname':'somevalue'} for current in mydictionary: result = mydictionary.(some_function_to_get_key_name)[current] print result "keyname" 

La razón de esto es que estoy imprimiendo esto en un documento y quiero usar el nombre de la clave y el valor al hacer esto

He visto el método a continuación, pero esto parece devolver el valor de la clave.

 get(key[, default]) 

Debes iterar sobre las teclas con:

 for key in mydictionary: print "key: %s , value: %s" % (key, mydictionary[key]) 

Si desea imprimir clave y valor, use lo siguiente:

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

La razón de esto es que estoy imprimiendo esto en un documento y quiero usar el nombre de la clave y el valor al hacer esto

Basado en el requisito anterior, esto es lo que sugeriría:

 keys = mydictionary.keys() keys.sort() for each in keys: print "%s: %s" % (each, mydictionary.get(each)) 

Si el diccionario contiene un par como este:

 d = {'age':24} 

entonces puede obtener como

 field, value = d.items()[0] 

Para Python 3.5, haga esto:

 key = list(d.keys())[0] 

keys=[i for i in mydictionary.keys()] o keys = list(mydictionary.keys())

Tan sencillo como eso:

 mydictionary={'keyname':'somevalue'} result = mydictionary.popitem()[0] 

Modificará su diccionario y deberá hacer una copia de él primero.

Iterar sobre el diccionario (i) devolverá la clave, luego la usará (i) para obtener el valor

 for i in D: print "key: %s, value: %s" % (i, D[i]) 

Para Python 3, si quieres obtener solo las teclas, usa esto. Reemplace imprimir (clave) con imprimir (valores) si desea los valores.

 for key,value in my_dict: print(key) 

Lo que a veces hago es crear otro diccionario para poder hacer lo que siento que necesito para acceder como cadena. Luego, repaso varias claves de coincidencia de diccionarios para crear, por ejemplo, una tabla con la primera columna como descripción.

 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]) 

Puede hacer fácilmente para que una gran cantidad de diccionarios combine datos (me gusta el hecho de que con el diccionario siempre puede referirse a algo conocido como el nombre de la clave)

Sí, utilizo diccionarios para almacenar los resultados de las funciones, por lo que no necesito ejecutar estas funciones cada vez que las llamo solo una vez y luego accedo a los resultados en cualquier momento.

EDITAR: en mi ejemplo, el nombre de la clave realmente no importa (personalmente me gusta usar los mismos nombres de clave, ya que es más fácil elegir un solo valor de cualquiera de mis diccionarios coincidentes), solo asegúrese de que el número de claves en cada diccionario sea lo mismo

Simplemente puede usar * que desempaqueta las claves del diccionario. Ejemplo:

 d = {'x': 1, 'y': 2} t = (*d,) print(t) # ('x', 'y') 

cambie fácilmente la posición de sus claves y valores, luego use los valores para obtener la clave, en el diccionario las claves pueden tener el mismo valor pero éstas (las claves) deben ser diferentes. por ejemplo, si tiene una lista y el primer valor es una clave para su problema y otros valores son las especificaciones del primer valor:

 list1=["Name",'ID=13736','Phone:1313','Dep:pyhton'] 

Puede guardar y usar los datos fácilmente en el Diccionario mediante este bucle:

 data_dict={} for i in range(1, len(list1)): data_dict[list1[i]]=list1[0] print(data_dict) {'ID=13736': 'Name', 'Phone:1313': 'Name', 'Dep:pyhton': 'Name'} 

luego puede encontrar la base de la clave (nombre) en cualquier valor de entrada.