7
votes

Comment supprimer tous les espaces dans les chaînes de la liste

Ma liste est comme ceci, xxx

Comment supprimer tous les espaces contenant des chaînes dans cette liste?


4 commentaires

Par vide, vous voulez dire que vous incluez des chaînes contenant uniquement des espaces?


Ya ... mon programme lit un fichier et prend chaque ligne et sépare .. donc dans la liste, il a des chaînes vides, je veux dire des espaces


Je ne sais pas pourquoi personne n'a suggéré cela, mais ce qui suit semble être le plus rapide des meilleures réponses - [elem pour elem dans la myiste sinon elem.isspace ()]


Isspace () est soutenu? Je ne savais pas ... merci entre !!


10 Réponses :


16
votes

Vous pouvez utiliser un compréhension de la liste : xxx

Utilisation de bande () garantit que même des chaînes contenant uniquement plusieurs espaces seront supprimées.


1 commentaires

... ou juste [elem pour elem dans la liste si l'élément.strip ()]



4
votes

Utilisez simplement un filtre avec Aucun code>.

>>> filter(None, ['', 'abc', 'bgt', 'llko', '', 'hhyt', '', '', 'iuyt'])
['abc', 'bgt', 'llko', 'hhyt', 'iuyt']
>>> filter(str.strip, [' ', 'abc', 'bgt', 'llko', ' ', 'hhyt', ' ', ' ', 'iuyt'])
['abc', 'bgt', 'llko', 'hhyt', 'iuyt']


0 commentaires

2
votes

Essayez d'utiliser Filtre (lambda x: x.strip (), myList) : xxx


0 commentaires

0
votes
mylist = [s for s in mylist if str is not " "]

0 commentaires

1
votes

Je le ferais de cette façon:

>>> mylist=[ " ","abc","bgt","llko"," ","hhyt"," "," ","iuyt"]
>>> new_list = [e for e in mylist if len(e.strip())!=0]
>>> new_list
      ['abc', 'bgt', 'llko', 'hhyt', 'iuyt']


0 commentaires

0
votes
list = ["first", "", "second"]
[x for x in list if x]
Output: ['first', 'second']Shortened as suggested,the same question given belowRemove empty strings from a list of strings

0 commentaires

9
votes

Utilisez Filtre avec méthode non liée str.strip .

Python 2.x xxx

python 3.x xxx


0 commentaires

2
votes
mylist = [x for x in [ " ","abc","bgt","llko"," ","hhyt"," "," ","iuyt"] if x]
... List comprehension with "if" clause and, in this case, relying on the fact that Python considers empty strings (and empty containers) to be "False" in boolean contexts.If by "empty" you mean zero-length or containing only spaces then you can change the if clause to read if x.strip()

0 commentaires

0
votes
>>> mylist=[ " ","abc","bgt","llko"," ","hhyt"," "," ","iuyt"]
>>> [i for i in mylist if i.strip() != '']
['abc', 'bgt', 'llko', 'hhyt', 'iuyt']

0 commentaires

1
votes

La méthode isalpha () vérifie si la chaîne est composée de caractères alphabétiques uniquement: xxx


0 commentaires