我有一个愚蠢的问题,列表中有空白项目。它中有if语句试图抵消它,但是即使有它们,输出中也包含空的部分。
我一直在研究string.split(),发现它实际上是很具体的,每当我尝试使其工作时,它都会失败。怎么了?
a = 'Beautiful, is==; better*than\nugly'
import re
a = re.split(',|\s|=|;|\*|\n| ',a)
for x in a:
if x == '\n':
a.remove(x)
elif x == ' ':
a.remove(x)
elif x == '':
a.remove(x)
print(a)
print("REE")
我希望结果仅是: [“美丽”,“是”,“更好”,“比”,“丑陋”]
但是实际结果是: [“ Beautiful”,“,” is“,”,“,”,“更好”,“比”,“丑”]
答案 0 :(得分:1)
您要分割任意数量的定界符字符的组。您现在的操作方式是一次只拆分一个。这会给您您想要的东西:
import re
a = 'Beautiful, is==; better*than\nugly'
a = re.split(r'[,\s=;*\n]+',a)
print(a)
结果:
['Beautiful', 'is', 'better', 'than', 'ugly']
如果要分割所有非字母数字字符,可以改用以下表达式:
a = re.split(r'[^\w]+',a)