我正在尝试从列表中删除不在65-90和97-122之间的ascii字符

问题描述 投票:-1回答:2

这是我的代码

lis_of_sentences = ['i have a wordÂ', 'my name is azirÂ', 'esta azirÂ']

Filtered_utterances = []

Filtered_utterances = [''.join(c for c in s if ord(c) not in range((range[65:91]) & (range[97:123]))) for s in lis_of_sentences]

我收到以下错误

Filtered_utterances = [''.join(如果ord(c)不在lis_of_sentences中的s的range((range [65:91])和(range [97:123])))中,则c为s中的c in]TypeError:“类型”对象不可下标

python non-ascii-characters
2个回答
1
投票

您说过您想删除不在65-90和97-122范围内的字符,但是采用这种方法,您将找到想要忽略的字符列表。

也不能以您使用的方式使用范围方法。请阅读问题注释中建议的范围方法文档。

您可能想要执行以下操作:

lis_of_sentences = ['i have a wordÂ', 'my name is azirÂ', 'esta azirÂ']
ascii_list = range(65, 92)+ range(97,124)
Filtered_utterances = [''.join(c for c in s if ord(c) in ascii_list) for s in lis_of_sentences]

0
投票

尝试使用其他setlist首先存储无效字符

invalid_range = set(range(65,91)) | set(range(97,123))
Filtered_utterances = [''.join(c for c in s if ord(c) not in invalid_range) for s in lis_of_sentences]
#['   Â', '   Â', ' Â']
© www.soinside.com 2019 - 2024. All rights reserved.