【发布时间】:2022-08-14 04:28:51
【问题描述】:
我有一串位置
locations = \'Los Angeles California ,\"Heliopolis, Central, Cairo, Egypt\",Berlin Germany, Paris France,\" Cairo, Egypt \" , \"Dokki, Giza, Egypt \" , Singapore\'
请注意,位置名称以逗号分隔。但是对于中间有逗号的每个名称,它都用双引号引起来。还有要去除的前缀/后缀空格。
将名称提取到列表中后,结果应为:
[\'Los Angeles California\', \'Heliopolis, Central, Cairo, Egypt\', \'Berlin Germany\', \'Paris France\', \'Cairo, Egypt\', \'Dokki, Giza, Egypt\', \'Singapore\']
我已经尝试过了,它能够得到结果。但是我在嘲笑我的工作,因为它看起来很麻烦????
import re
locations = \'Los Angeles California ,\"Heliopolis, Central, Cairo, Egypt\",Berlin Germany, Paris France,\" Cairo, Egypt \" , \"Dokki, Giza, Egypt \" , Singapore\'
lis1 = [e.strip() for e in re.findall(\'\"(.*?)\"\', locations)]
temp = []
for strg in lis1:
temp.extend([x.strip() for x in strg.split(\',\')])
lis2 = [e.strip() for e in locations.split(\',\')]
for strg in lis2:
if strg.strip(\'\"\').strip() not in temp:
lis1.append(strg)
print(lis1)
所以我正在与社区联系......是否有使用正则表达式或任何其他方法的更好解决方案?
-
为了避免 X-Y 问题,您从哪里提取数据,以及使用什么代码?
-
我正在从这个post 学习正则表达式。如果要混合数据,我正在挑战自己解决它
标签: python string list extract