我要拆分带有特定符号的项目列表。
我使用了以下代码
data = "launch, 7:30am, watch tv, workout, snap, running, research study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))
我想要的是拆分数据并像这样打印:
启动,学习和学习
但是当数据以这种方式更改时出现问题:
data = "launch, 7:30am, watch tv, workout, snap, running, research — discussion, study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))
在这种情况下,我希望能得到以下结果:
启动,讨论,学习和学习
这样,将出现错误“列表索引超出范围”!这是正确的,因为最后一个元素后没有符号“-”,因为是“,”,并且我指示将数据拆分为“,”因此在“讨论,学习和学习”中将其视为单独的数据,因此会出现错误。我不想重写任何代码,是否可以使用代码重用来读取两个数据。可以在“-”符号后读取吗?
答案 0 :(得分:0)
似乎您的预期输出取决于单词research
我们可以使用正则表达式实现相同的功能,该正则表达式将搜索research
个单词并在其后提供字符。
您可以尝试-
# -*- coding: utf-8 -*-
import re
(re.split(r'*research[^A-Za-z0-9]+',data))[-1]
#study and learn
#discussion, study and learn
完整代码:
# -*- coding: utf-8 -*-
import re
print ("{0}, {1}".format(data.split(',')[0], (re.split(r' *research[^A-Za-z0-9]+',data))[-1]))
#launch, study and learn
#launch, discussion, study and learn
详细了解python Regex :
https://docs.python.org/3/library/re.html
或此处的表达式: