> 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 _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python