valor resueltos recorrer lista elementos ejercicios diccionarios diccionario dentro convertir buscar agregar python ordereddictionary

resueltos - lista de diccionarios python



Cómo saber la posición de los elementos en un diccionario ordenado de Python (3)

¿Podemos saber la posición de los artículos en el diccionario ordenado de Python? Por ejemplo:

Si tengo diccionario:

// Ordered_dict is OrderedDictionary Ordered_dict = {"fruit": "banana", "drinks": "water", "animal": "cat"}

Ahora, ¿cómo saber en qué posición pertenece el gato? ¿Es posible obtener respuesta como:

position ( Ordered_dict["animal"]) = 2 ? o de alguna otra manera?


Para Python3: tuple(d).index(''animal'')

Esto es casi lo mismo que la respuesta de Marein anterior, pero usa una tupla inmutable en lugar de una lista mutable. Por lo tanto, debería ejecutarse un poco más rápido (~ 12% más rápido en mi prueba de cordura rápida).


Piensa primero que lo que necesitas es leer la documentación. Si abres el tutorial de Python y luego intentas encontrar información sobre OrderedDict, verás lo siguiente:

class collections.OrderedDict ([items]): devuelve una instancia de una subclase dict, que admite los métodos dict habituales. Un OrderedDict es un dict que recuerda el orden en que se insertaron las teclas por primera vez. Si una nueva entrada sobrescribe una entrada existente, la posición de inserción original se mantiene sin cambios. Eliminar una entrada y reinsertarla la moverá al final.

Nuevo en la versión 2.7.

Entonces, si está utilizando un diccionario ordenado y no va a eliminar las claves, entonces ''animal'' estará siempre en la posición que agregue, por ejemplo, el índice 2.

También para obtener un índice de un ''gato'' puedes simplemente usar:

from collections import OrderedDict d = OrderedDict((("fruit", "banana"), ("drinks", "water"), ("animal", "cat"))) d.keys() >>> [''fruit'', ''drinks'', ''animal''] d.values() >>> [''banana'', ''water'', ''cat''] # So d.values().index(''cat'') >>> 2


Puede obtener una lista de claves con la propiedad de keys :

In [20]: d=OrderedDict((("fruit", "banana"), ("drinks", ''water''), ("animal", "cat"))) In [21]: d.keys().index(''animal'') Out[21]: 2

Sin embargo, se podría lograr un mejor rendimiento con el uso de iterkeys() .

Para aquellos que usan Python 3

>>> list(x.keys()).index("c") 1