如何用Python正则从嵌套列表中移除含数字等特征的元素
解决嵌套列表过滤非纯字母元素的问题
直接过滤掉所有包含非字母字符的元素就行,不用去修改元素内容。用正则表达式判断元素是否完全由字母组成,符合条件的才保留。
举个代码示例:
import re # 你的原始嵌套列表 nested_list = [['philips', '190g6'], ['hero', '$"', 'long', '$-']] # 嵌套列表推导式过滤元素 filtered_result = [[item for item in sublist if re.fullmatch(r'[a-zA-Z]+', item)] for sublist in nested_list] print(filtered_result) # 输出:[['philips'], ['hero']]
说明:
re.fullmatch(r'[a-zA-Z]+', item)会严格检查元素是否从头到尾都是英文字母,只要包含数字、$、"这类非字母字符,就会被过滤掉。- 之前用
re.sub只是移除数字,但没法处理特殊符号,还会留下像'g'这种无用的残留元素,直接过滤整个元素才是更直接的解决方式。
内容的提问来源于stack exchange,提问作者Pål Christian Løken
相关产品推荐
相关产品推荐

