Asignar un número a cada valor en python

Iniciado por ZZZz1727z, 13 Marzo 2021, 00:51 AM

0 Miembros y 1 Visitante están viendo este tema.

ZZZz1727z

Hola, si por ejemplo tengo un lista ['gato', 'perro', 'otro']
Que puedo hacer si lo que quiero es tener {'1':'gato', '2':'perro', '3':'otro'}

Drakaris

#1
Buenas! No conozco mucho este leguaje, pero me parece que no existen los objetos tal cual como en javascript en Python,
Código (javascript) [Seleccionar]

{
   1: 'gato',
   2: 'perro',
   3:'otro'
}


Pero si existe la posibilidad de hacer arrays bidireccionales, así que, simplemente puedes obtener la longitud del la lista ['gato', 'perro', 'otro'], y hacer un bucle for de cuyo rango de longitud que te dio. Y en cada iteración modificar el elemento del indice actual por un array que contenga el numero en sí y el valor.

Primero obtenemos la longitud de la lista, imaginando que la variable 'lista' contiene el array
Código (python3) [Seleccionar]
lenList=len(lista)
A continuación hacemos un bucle con el rango de la longitud

Código (python) [Seleccionar]

for i in range(len(lista)):
lista[i] = [i,lista[i]]


Y dentro le modificamos el elemento del array cuyo indice es de la iteración actual, no se, sí me explico bien.

Y si hicieramos un echo lista, veriamos que se creo un array bidireccional

Te dejo un ejemplo y su salida:
Código (python) [Seleccionar]

lista = ["gato","perro","otro"];
def ordenarValores(list):
for i in range(len(lista)):
lista[i] = [i,lista[i]]
print(lista)
ordenarValores(lista)
print(lista[0][1])


Salida
Citar
[[0, 'gato'], [1, 'perro'], [2, 'otro']]
gato

Espero que te haya respondido a tu duda y te haya ayudado. Buen dia.
Lo increible, no es lo que ves, sino como es

tincopasan

como dijiste tenés una lista y lo que mostrás que querés tener es un diccionario, si bien se puede hacer de forma manual, no le veo sentido, la rueda ya está inventada, así que usamos las funciones dict y enumerate:
Código (python) [Seleccionar]

lista=['gato', 'perro', 'otro']
diccionario =dict(enumerate(lista,1))
print(diccionario)


y listo!