【发布时间】:2021-03-11 03:56:08
【问题描述】:
如果您要在一个序列中包含一串字符/数字 - 比如说 AACBDEFZZBGFAAFFGGCCEEZZ
如何遍历字符串,然后让 AA 和 ZZ 之间的每个字符都出现在列表中?这种情况下的最终结果是:
[CBDEF], [FFGGCCEE] ?
谢谢
【问题讨论】:
-
改写 - 最好是我使用的词的错误选择
如果您要在一个序列中包含一串字符/数字 - 比如说 AACBDEFZZBGFAAFFGGCCEEZZ
如何遍历字符串,然后让 AA 和 ZZ 之间的每个字符都出现在列表中?这种情况下的最终结果是:
[CBDEF], [FFGGCCEE] ?
谢谢
【问题讨论】:
你可以使用str.index:
def between_markers(s, starting_marker="AA", ending_marker="ZZ"):
# keep track of where the previous marker was found
prev_ind = 0
ret = []
while True:
try:
# find the starting marker
start = s.index(starting_marker, prev_ind) + len(starting_marker)
# find the ending marker
end = s.index(ending_marker, start)
prev_ind = end + len(ending_marker)
# slice and append to return list
ret.append(s[start:end])
except ValueError:
# couldn't find one of the two markers so we're done
break
return ret
between_markers("AACBDEFZZBGFAAFFGGCCEEZZ") # ['CBDEF', 'FFGGCCEE']
【讨论】: