Python - Mostar los valores de una lista, con los indices en otra lista

 
Vista:

Mostar los valores de una lista, con los indices en otra lista

Publicado por Alexis López (1 intervención) el 12/06/2018 01:57:56
Bueno, tengo un problema con esto tengo una lista
lista = [222,55,88,1,25,34,56,841,25]

Y en otra lista tengo los indices
indices = [2,5,7]

Quiero obtener los valores de la lista que estan en esos indices que serian [88,34,841]
sin tener que hacerlo manualmente ya que tengo una lista con mas de 5mil valores, gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Mostar los valores de una lista, con los indices en otra lista

Publicado por tincopasan (1082 intervenciones) el 12/06/2018 04:56:06
pues cada valor o integrante de una lista tiene un indice
y quieres crear una lista nueva agregando los valores obtenidos:
lo único que pondré en python, pero que deberías saber es como crear una lista
1
crearlista=[]
para valor en indices
crearlista.agregar(lista[valor])

mostrar(crearlista)

por supuesto habría que verificar varias cosas entre ellas que los valores de indice no sean mayores a los que existen en lista sino darán error.
nada más simple de entender que eso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Mostar los valores de una lista, con los indices en otra lista

Publicado por kip (257 intervenciones) el 12/06/2018 17:07:58
Hola, si ya tienes las listas, puedes hacer algo sencillo como esto:

1
2
3
4
5
6
7
8
9
>>> lista = [222,55,88,1,25,34,56,841,25]
>>> indices = [2,5,7]
>>> listaF = []
>>> for i, n in enumerate(lista):
...     if i in indices:
...         listaF.append(n)
...
>>> listaF
[88, 34, 841]
https://docs.python.org/3/library/functions.html#enumerate

Pero puedes aprovechar el "syntactic sugar" (azúcar sintáctico) que provee Python mas famoso, las listas por comprensión:

1
2
3
>>> listaF = [v for i, v in enumerate(lista) if i in indices]
>>> listaF
[88, 34, 841]


http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar