社区,
我需要清理一个字符串,以便它只包含字母,数字和空格。 字符串暂时由不同的句子组成。
我试过了:
for entry in s:
if not isalpha() or isdigit() or isspace:
del (entry)
else: s.append(entry) # the wanted characters should be saved in the string, the rest should be deleted
我正在使用python 3.4.0
答案 0 :(得分:2)
您可以使用:
clean_string = ''.join(c for c in s if c.isalnum() or c.isspace())
它遍历每个角色,只留下满足两个标准中至少一个的那些角色,然后将它们全部重新连接在一起。我使用isalnum()
来检查字母数字字符,而不是分别检查isalpha()
和isdigit()
。
您可以使用filter
:
clean_string = filter(lambda c: c.isalnum() or c.isspace(), s)
答案 1 :(得分:1)
or
不会像您认为的那样有效。相反,你应该这样做:
new_s = ''
for entry in s:
if entry.isalpha() or entry.isdigit() or entry.isspace():
new_s += entry
print(new_s)