从Python中的句子列表中删除非字母字符



从这样的列表开始:

sentences = ["da quando è esplosa l'epidemia, ci sono stati -- i dati ufficiali sottostimano il fenomeno -- 92.522 morti, 2.725.106 cittadini colpiti dal virus, in questo momento 2.074 sono i ricoverati in terapia intensiva", 'ci sono 259 morti tra gli operatori sanitari e 118.856 sono quelli contagiati, a dimostrazione di un enorme sacrificio sostenuto con generosità e impegno', 'cifre che hanno messo a dura prova il sistema sanitario nazionale, sottraendo personale e risorse alla prevenzione e alla cura di altre patologie, con conseguenze pesanti sulla salute di tanti italiani', "l'aspettativa di vita, a causa della pandemia, è diminuita: fino a 4 - 5 anni nelle zone di maggior contagio; un anno e mezzo - due in meno per tutta la popolazione italiana"]

我想获得一个每个元素中没有数字和符号的列表,例如:

["da quando è esplosa l'epidemia ci sono stati i dati ufficiali sottostimano il fenomeno morti cittadini colpiti dal virus in questo momento sono i ricoverati in terapia intensiva", ...]
def get_letters(x):
n_s=[]
for i in x:
elem=" ".join([c for c in i.split(' ') if c.isalpha()])
n_s.append(elem)
return n_s
get_letters(sentences)  

输出:

['da quando è esplosa ci sono stati i dati ufficiali sottostimano il fenomeno cittadini colpiti dal in questo momento sono i ricoverati in terapia intensiva',
'ci sono morti tra gli operatori sanitari e sono quelli a dimostrazione di un enorme sacrificio sostenuto con generosità e impegno',
'cifre che hanno messo a dura prova il sistema sanitario sottraendo personale e risorse alla prevenzione e alla cura di altre con conseguenze pesanti sulla salute di tanti italiani',
'di a causa della è fino a anni nelle zone di maggior un anno e mezzo due in meno per tutta la popolazione italiana']

您需要定义要过滤的内容。以下是您的数据代码:

def filter(text):
skip_space = True
for ch in text:
if skip_space and ch == ' ':
continue
skip_space = ch in '0123456789.-'
if skip_space:
continue
yield ch
for sentence in sentences:
result = ''.join(filter(sentence))
print(result)
print('=====')
sentences = ["da quando è esplosa l'epidemia, ci sono stati -- i ..."]
answer = []                   # empty list
for i in sentences:
sentence = i.split(" ")
words = []
for z in sentence:
if z[0].isalpha():    # used z[0] because "l'epidemia".isalpha() == False
words.append(z)
answer.append(" ".join(words))
print(answer)

最新更新