¿Alguien puede darme un consejo sobre cómo imprimir solo el nombre de todas las teclas en una tupla? ES DECIR,

Ralph marley sam

Por ejemplo, ¿cómo podría imprimir el nombre de cada animal a continuación y no las claves anidadas (si tengo la terminología correcta ...) que enumeran qué tipo de animal e identificador ...

animals = {'ralph': ('dog', 160101),
        'marley': ('dog', 160102),
        'sam': ('cat', 160103),
        'bones': ('dog', 160104),
        'bella': ('cat', 160105),
        'max': ('dog', 160106),
        'daisy': ('cat', 160107),
        'angel': ('cat', 160108),
        'luna': ('cat', 160109),
        'buddy': ('dog', 160110),
        'coco': ('dog', 160111),
       }

#dict(TUPLE)[key]
d = dict(animals)


for animal in animals.items():
    print(animal)
1
HenryHub 30 sep. 2019 a las 17:08

5 respuestas

La mejor respuesta

¿Estás esperando esto? Cada iteración en animals.items() contiene dos valores diferentes, la clave y la tupla. Debe dirigir la clave que está en el primer índice agregando la posición [0] en su bucle.

for animal in animals.items():
    print(animal[0])

Salida:

ralph
marley
sam
bones
bella
max
daisy
angel
luna
buddy
coco
0
Celius Stingher 30 sep. 2019 a las 14:11

En primer lugar, su tupla animals ya es un diccionario, no una tupla. Entonces invocar dict() en él es redundante.

Además, las entradas a su dict animals son combinaciones de pares clave / valor con los nombres de los animales como claves, y sus especies y números como sus respectivos valores en una tupla real.

El dict.items() que usó devuelve una lista de tuplas (key, value) que puede indexar como lo haría con una lista. Entonces lo siguiente debería funcionar:

animals = {'ralph': ('dog', 160101),
            'marley': ('dog', 160102),
            'sam': ('cat', 160103),
            'bones': ('dog', 160104),
            'bella': ('cat', 160105),
            'max': ('dog', 160106),
            'daisy': ('cat', 160107),
            'angel': ('cat', 160108),
            'luna': ('cat', 160109),
            'buddy': ('dog', 160110),
            'coco': ('dog', 160111),
           }

for KeyAndValue in animals.items():
    print(KeyAndValue[0])

Resultados en:

ralph
marley
sam
bones
bella
max
daisy
angel
luna
buddy
coco

También puede iterar sobre las teclas de la siguiente manera:

for name in animals.keys():
    print(name)

Resultados en:

ralph
marley
sam
bones
bella
max
daisy
angel
luna
buddy
coco

Tenga en cuenta que en realidad no tiene que llamar al método dict.keys(), ya que los diccionarios son iterables por sus teclas de forma predeterminada. consulte respuesta de bruno desthuilliers para obtener detalles y un ejemplo.

-1
Kraay89 30 sep. 2019 a las 14:35

¿Alguien puede darme un consejo sobre cómo imprimir solo el nombre de todas las teclas en una tupla?

Su variable animals es a dict, no un tuple. Sus valores son tuplas. Entonces, su pregunta es "cómo imprimo las claves de un dict", que es simple:

print(animals.keys())

O si quieres uno por línea:

print("n".join(animals)

O si realmente quieres un bucle for:

for key in animals: 
    print(key)

Tenga en cuenta que no utilizamos los métodos .keys() en los últimos dos ejemplos, ya que dict son iterables y funcionan en sus claves, no en sus valores.

Es posible que desee leer el excelente manual (comenzando con el tutorial oficial) para obtener más información sobre la "terminología" (que es muy importante) y qué tipos de datos estándar tienen para ofrecer.

2
Celius Stingher 30 sep. 2019 a las 14:35

Esto debería hacerlo.

for animal in animals.keys():
    print(animal)
1
Neeraj Lagwankar 30 sep. 2019 a las 14:11
for key, value in animals.items():
    print(key)
-1
Landcross 30 sep. 2019 a las 14:09
58169618