Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ZZZz1727z en 13 Marzo 2021, 00:51 am



Título: Asignar un número a cada valor en python
Publicado por: ZZZz1727z en 13 Marzo 2021, 00:51 am
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'}


Título: Re: Asignar un número a cada valor en python
Publicado por: Drakaris en 13 Marzo 2021, 01:16 am
Buenas! No conozco mucho este leguaje, pero me parece que no existen los objetos tal cual como en javascript en Python,
Código
  1. {
  2.    1: 'gato',
  3.    2: 'perro',
  4.    3:'otro'
  5. }
  6.  

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
  1. lenList=len(lista)
A continuación hacemos un bucle con el rango de la longitud

Código
  1. for i in range(len(lista)):
  2. lista[i] = [i,lista[i]]
  3.  

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
  1. lista = ["gato","perro","otro"];
  2. def ordenarValores(list):
  3. for i in range(len(lista)):
  4. lista[i] = [i,lista[i]]
  5. print(lista)
  6. ordenarValores(lista)
  7. print(lista[0][1])
  8.  

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

Espero que te haya respondido a tu duda y te haya ayudado. Buen dia.


Título: Re: Asignar un número a cada valor en python
Publicado por: tincopasan en 13 Marzo 2021, 03:51 am
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
  1. lista=['gato', 'perro', 'otro']
  2. diccionario =dict(enumerate(lista,1))
  3. print(diccionario)
  4.  

y listo!