我有一个名为 university_towns.txt
的列表,其中包含如下列表:
['Alabama[edit]\n',
'Auburn (Auburn University)[1]\n',
'Florence (University of North Alabama)\n',
'Jacksonville (Jacksonville State University)[2]\n',
'Livingston (University of West Alabama)[2]\n',
'Montevallo (University of Montevallo)[2]\n',
'Troy (Troy University)[2]\n',
'Tuscaloosa (University of Alabama, Stillman College, Shelton State)[3] [4]\n',
'Tuskegee (Tuskegee University)[5]\n']
我想清理这个文本文件,将括号中的所有字符替换为 '' 。所以,我希望我的文本文件看起来像:
['Alabama',
'Auburn',
'Florence',
'Jacksonville',
'Livingston',
'Montevallo',
'Troy',
'Tuscaloosa,
'Tuskegee',
'Alaska',
'Fairbanks',
'Arizonan',
'Flagstaff',
'Tempe',
'Tucson']
我正在尝试按如下方式执行此操作:
import pandas as pd
import numpy as np
file = open('university_towns.txt','r')
lines = files.readlines()
for i in range(0,len(file)):
lines[i] = lines[i].replace('[edit]','')
lines[i] = lines[i].replace(r' \(.*\)','')
有了这个,我可以删除 '[edit]'
但我无法删除 '( )'
中的字符串。
最佳答案
您可以将 regex
与 list comprehension 表达式一起用作:
import re
new_list = [re.match('\w+', i).group(0) for i in my_list]
# match for word ^ ^ returns first word
其中 my_list
是问题中提到的原始 list
。 new_list
持有的最终值将是:
['Alabama',
'Auburn',
'Florence',
'Jacksonville',
'Livingston',
'Montevallo',
'Troy',
'Tuscaloosa',
'Tuskegee']
关于python - 替换python列表中的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240936/