如何在Python列表中移除括号()内的文本?
移除列表中括号及括号内文本的解决方案
方法1:正则表达式精准替换
用re.sub结合列表推导式批量处理,适合绝大多数场景(包括括号前带空格、括号内有长文本的情况):
import re # 示例原始列表(替换成你爬取的实际数据) raw_countries = ["Austria (AT)", "Belgium (BE)", "France (French Republic)"] # 批量清理 cleaned_countries = [re.sub(r'\s*\(.*?\)', '', item).strip() for item in raw_countries] print(cleaned_countries) # 输出: ['Austria', 'Belgium', 'France']
\s*:匹配括号前的任意空格,避免清理后残留空格\(/\):转义匹配左右括号(括号在正则中是特殊字符).*?:非贪婪匹配括号内的所有内容,防止误匹配多个括号的极端情况.strip():兜底清除首尾可能残留的空白字符
方法2:简单分割法(适合无嵌套括号的场景)
如果你的数据里括号都是简单成对且仅在末尾出现,用split更高效:
raw_countries = ["Austria (AT)", "Belgium (BE)", "France (French Republic)"] cleaned_countries = [item.split('(')[0].strip() for item in raw_countries] print(cleaned_countries) # 输出同上
这个方法代码更简洁,但如果遇到括号不在末尾或有嵌套的情况,会失效,优先推荐正则法。
内容的提问来源于stack exchange,提问作者joni
相关产品推荐
相关产品推荐

