从列表中删除所有特殊字符。

4
我有一个字符串列表,其中一些字符串是特殊字符,如何在结果列表中排除这些特殊字符?
list = ['ben','kenny',',','=','Sean',100,'tag242']

expected output = ['ben','kenny','Sean',100,'tag242']

请指导我实现相同的方法。谢谢。

1
这应该是一条注释,但看看这个线程: https://dev59.com/9VYN5IYBdhLWcg3whYe3 - morsh3d
3个回答

11

字符串模块有一个标点符号列表,您可以使用它来从单词列表中排除标点符号:

import string

punctuations = list(string.punctuation)

input_list = ['ben','kenny',',','=','Sean',100,'tag242']
output = [x for x in input_list if x not in punctuations]

print(output)

输出:

['ben', 'kenny', 'Sean', 100, 'tag242']

这个标点符号列表包括以下字符:

['!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~']

3
可以使用isalnum()字符串函数轻松完成。isalnum()函数返回真值,如果字符串只包含数字或字母,则返回true;如果字符串包含除此以外的任何特殊字符,则函数将返回false。(不需要导入任何模块来使用isalnum()函数,它是一个默认函数)
代码:
list = ['ben','kenny',',','=','Sean',100,'tag242']
olist = []
for a in list:
   if str(a).isalnum():
      olist.append(a)
print(olist)

输出:

['ben', 'kenny', 'Sean', 100, 'tag242']

0
my_list = ['ben', 'kenny', ',' ,'=' ,'Sean', 100, 'tag242']
stop_words = [',', '=']

filtered_output = [i for i in my_list if i not in stop_words]

如果您需要删除其他字符,停用词列表可以进行扩展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接