Autor
|
Tema: Duda programa python. (Leído 1,993 veces)
|
assw1208
Desconectado
Mensajes: 79
|
Tengo un problema desde ayer, al crear un programa que elimina los elementos pares de una lista. No elimina todos los números pares de la lista y por más que reviso el código no doy con una solución el código es: lista = [13,26, 24, 15, 28, 91, 63] print(lista) indice = 0
for i in lista: #print(indice) if i %2 == 0: print("if : ", indice, "numero :", i) lista.pop(indice) indice += 1
print( "\n \n",lista)
La lista que me devuelve después es [13,24,28,91,63]... y ni idea de porque pasa esto. Sé que haciendo un apaño como este ya estaría: lista = [13,26, 24, 15, 28, 91, 63] lista_impares = []
for i in lista: if i %2 != 0: lista_impares.append(i)
Pero me gustaría saber en que estoy fallando. Estaría muy agradecido a cualquiera que me supiese decir donde estoy fallando. Muchas gracias de antemano.
|
|
« Última modificación: 24 Agosto 2020, 19:13 pm por assw1208 »
|
En línea
|
"COURAGE TODAY, VICTORY TOMORROW "
----------------W--------------
|
|
|
WHK
|
Muy facil amigo, cuando, haces pop para retirar un elemento de un array este se transforma y se reordenan los índices, pero mientras lo haces estás iterando, por eso estás omitiendo todos los valores que siguen despues de un valor eliminado ya que se corre el índice. A demás, un array de python cuenta con la función remove(), no hace falta hacerle un pop(), asi no necesitas índices, pero de todas maneras puedes hacerlo más fácil: lista = [13, 26, 24, 15, 28, 91, 63] lista = [i for i in lista if i % 2 != 0] print(lista) $ python3 test.py [13, 15, 91, 63] Saludos.
|
|
« Última modificación: 24 Agosto 2020, 19:31 pm por WHK »
|
En línea
|
|
|
|
assw1208
Desconectado
Mensajes: 79
|
Muchisimas gracias tanto por la explicación como por el código, nunca se me habría ocurrido hacer algo así dentro de una lista . Sin duda me hace falta muchísimo mas estudio de este tema .
|
|
|
En línea
|
"COURAGE TODAY, VICTORY TOMORROW "
----------------W--------------
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PROGRAMA EN PYTHON
Scripting
|
D@V1D94
|
2
|
5,283
|
31 Enero 2012, 20:30 pm
por D@V1D94
|
|
|
[Python/Tk]Mi Programa se ríe de mi
Scripting
|
AdeLax
|
2
|
2,665
|
11 Agosto 2013, 12:19 pm
por AdeLax
|
|
|
programa en python
Scripting
|
py.cba
|
5
|
2,818
|
5 Noviembre 2016, 03:52 am
por Once
|
|
|
Programa python
Scripting
|
santiago torres
|
2
|
1,771
|
10 Marzo 2017, 13:20 pm
por Orubatosu
|
|
|
Programa en Python 3D
Programación General
|
PepeElMago33
|
4
|
2,898
|
18 Abril 2019, 16:20 pm
por PepeElMago33
|
|