首页 > 解决方案 > 从 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", ...]

标签: pythonstringlisttext

解决方案


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

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('=====')

推荐阅读