Soy nuevo en Python y me preguntaba si hay una manera de obtener un valor en un índice específico. Digamos que tengo una clave con múltiples valores (list) asociada a ella.

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}

Digamos que quiero iterar a través de los valores e imprimir el valor si es igual a 'PERRO'. ¿Los valores, los pares de claves tienen un índice específico asociado con la posición de los valores?

Intenté leer sobre dict y cómo funciona, aparentemente no se puede indexar. Solo quería saber si hay una manera de evitar eso.

0
Vathana Him 7 oct. 2019 a las 17:05

4 respuestas

La mejor respuesta

Entonces quizás esto ayude:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
for item in d:
    for animal in (d[item]):
        if animal == "DOG":
            print(animal)

Actualización: ¿qué pasa si quiero comparar la cadena para ver si son iguales o no? Digamos si el valor en el primer índice es igual al valor en el segundo índice.

Puede utilizar esto:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
for item in d:
    for animal in (d[item]):
        if animal == "DOG":
            if list(d.keys())[0] == list(d.keys())[1]:
                 print("Equal")
            else: print("Unequal")
0
Sid 7 oct. 2019 a las 14:19

Las claves y los valores en un diccionario están indexados por clave y no tienen un índice fijo como en las listas.

Sin embargo, puede aprovechar el uso de 'OrderedDict' para dar un esquema de indexación a sus diccionarios. Raramente se usa, pero es útil.

Dicho esto, los diccionarios en python3.6 están ordenados por inserción:

Más sobre eso aquí:

¿Se ordenan los diccionarios en Python 3.6+?

0
Cyrus Dsouza 7 oct. 2019 a las 14:13
d = {'animal': ['cat', 'dog', 'kangaroo', 'monkey'], 'flower': ['hibiscus', 'sunflower', 'rose']}
    for key, value in d.items():
        for element in value:
            if element is 'dog':
                print(value)

¿esto ayuda? o, ¿quieres imprimir el índice de clave en el diccionario?

0
Prem Ib 7 oct. 2019 a las 14:13

Puede realizar lo siguiente (comentarios incluidos):

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}

for keys, values in d.items(): #Will allow you to reference the key and value pair
    for item in values:        #Will iterate through the list containing the animals
        if item == "DOG":      
            print(item)
            print(values.index(item))  #will tell you the index of "DOG" in the list.
2
RamWill 7 oct. 2019 a las 14:16
58271228