[Python] - Eliminar listas y par

Iniciado por Meta, 14 Noviembre 2010, 06:13 AM

0 Miembros y 2 Visitantes están viendo este tema.

Meta

Buenas:

Ver ejercicio.


¿Cómo hago para borrar números pares de una lista así sin más?

lista = [1, 2, 1, 5, 0, 3]

Intenté hacer una locura.

Código (python) [Seleccionar]
lista = [1, 2, 1, 5, 0, 3]

i = 0
while i < len(lista):
    if lista[i] < 2:
        del lista[i]
    else:
        i += 2
       
print lista
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

xassiz~

Con:
Código (python) [Seleccionar]

if lista[i] < 2:

compruebas si el número es par? ;D

Meta

Es un ejemplo que vienen en el PDF.

¿Cómo se hace lo del par?
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

xassiz~

Código (python) [Seleccionar]

lista = [1, 2, 1, 5, 0, 3]

for i in lista:
    if lista[i]%2 == 0:
        del lista[i]

print lista

No tengo Python en este pc, pero debería funciona :P

Meta

Da error:
Citarif lista%2 == 0:
IndexError: list index out of range
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/


.:WindHack:.

El código está mal. Es así:

Código (python) [Seleccionar]
List = [1,2,3,4,5,6,7,8,9,10]

for i in List:
    if i % 2 == 0:
        List.remove(i)

print List

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

Meta

No, no es así: Lo he estado probando a mi manera y no.

Código (python,5) [Seleccionar]
lista = [1, 2, 1, 5, 0, 3]

for i in lista:
    if i % 2 == 0:
        lista.remove(i)

print lista


Citar[1, 1, 5, 3]

El resultado debe ser así.
Citar[2, 5, 3]

Mirando lo que significa remove. ME imagino que quitar, eliminar. Aquí hay tantas cosa que no se done pinchar.
http://docs.python.org/search.html?q=remove

Gracias por tu tiempo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

xassiz~

Perdón:
Código (python) [Seleccionar]

lista = [1, 2, 1, 5, 0, 3]

for i in lista:
    if i%2 == 0:
        del lista[i]

print lista

.:WindHack:.

Cita de: Meta en 14 Noviembre 2010, 20:30 PM
No, no es así: Lo he estado probando a mi manera y no.

El resultado debe ser así.
Citar[2, 5, 3]

Mirando lo que significa remove. ME imagino que quitar, eliminar. Aquí hay tantas cosa que no se done pinchar.
http://docs.python.org/search.html?q=remove

Gracias por tu tiempo.

Perdón, fue error mío al no leer el enunciado del ejercicio. Entendí que se debía eliminar los números pares de la lista, cuando lo que pedían era remover los elementos que tuviesen un índice par.

Bueno, creo que de esta manera funciona bien:

Código (python) [Seleccionar]
List = [1, 2, 1, 5, 0, 3]

i = 0
while (i < len(List)):
del List[i]
i += 1

print List


Código (PoC) [Seleccionar]
C:\Users\WindHack\Desktop\>PoC.py
[2, 5, 3]


Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."