[Python] eliminare spazi da lista

Sandro Dentella sandro a e-den.it
Sab 18 Nov 2006 15:42:41 CET


>           salve community di python, devo eliminare degli spazi da una lista.
>           la lista fino a 9 ha spazi e poi no
>           c=['1',' ','2',' ',3,' ','4',' ','5',' ','6',' ','7',' ','8','
>           ','9','10','11','12','13']
> 
>      c = [x for x in c if not x == ' ']
>      oppore, forse meglio:
>      for i in range(9):
>          if c[i] == ' ':
>              del c[i]
> 
>    Mi piace di più la prina forma ma suggerirei a Danieli di provarla anche
>    sulle lettere... non si sa mai:
>    c=['R',' ','T',' ','F',' ','M']

  Le due forme sopra fanno cose diverse. La prima forma crea una nuova
  lista, è più concisa e va bene se la lista è piccola.

  La seconda forma non crea una nuova lista, siccome l'OT aveva detto che
  potevano esserci spazi solo nei primi 9 elementi e non ha detto se la
  lista era eventualmente anche lunga ho suggerito la seconda versione.

  Provarla con lettere invece che numeri non serve a nulla. '1' è una
  stringa al pari di 'A' ed in ogni caso se anche avesse scelto 1 (non '1')
  è il test x == ' ' che importa, cosa aggiunge il test con stringhe?

  sandro
  *:-)

-- 
Sandro Dentella  *:-)
http://www.tksql.org                    TkSQL Home page - My GPL work


Maggiori informazioni sulla lista Python