如何从python中的列表中删除特殊字符

问题描述 投票:3回答:2

我有一个像这样的清单

['hold',  'summit',  'septemb',  '8',  '9',  '.',  "'s",  'nancy-amelia',   'sydney',  '.',  'energy',  ',']

我想一次性从这样的列表中删除所有整数,'点',“s”,“逗号”,“双引号”中的引号或者我只想保留字符串条目,即列表中的hold,summit等并删除所有其他东西

预先感谢

python-3.x list
2个回答
5
投票
>>> lst=['hold',  'summit',  'septemb',  '8',  '9',  '.',  "'s",  'nancy-amelia',   'sydney',  '.',  'energy',  ',']
>>> import re
>>> list(filter(lambda x:x, map(lambda x:re.sub(r'[^A-Za-z]', '', x), lst)))
['hold', 'summit', 'septemb', 's', 'nancyamelia', 'sydney', 'energy']
>>> 

0
投票

试试这个

words = ['qwety', 'dot', 's', '"']

filter_words = ['"', 'dot']

filtered = [word for word in words if word not in filter_words]

(在第3行)我们使用python“list comprehension”和“if condition”。这样你就可以创建带有值的新列表,如果条件(if word not in filter_words)将通过。

© www.soinside.com 2019 - 2024. All rights reserved.