我尝试在不使用string.spliit的情况下拆分给定的字符串,但是使用下面的代码,我只能得到第一个标记“abc”,但我也想得到“jkl”。我该怎么做?因为这是我的家庭作业,我不想要代码本身,而是它背后的逻辑。先谢谢你
注意:我不允许使用元组、列表、字典等
is_begin = True
def get_field(line):
t_ind = line.find('\t')
if is_begin ==True:
return line[0:t_ind]
else:
return (line[t_ind:-1])
return line
letters = "abc\tdef\tghi\tjkl"
print(get_field(letters))
根据第二个参数查找“\t”在
letters
中出现的第一个和最后一个位置如果第二个参数是
True
,则找到第一个匹配项并按索引值取出第一个标记。这里,当is_begin == True
找到第一次出现的索引并通过line[0:t_ind]
取出字符串,其中t_ind
是第一次出现的索引。0表示从字符串开始,t_ind表示第一个标记的结束同样,当
is_begin != True
找到最后一次出现的索引并通过line[t_ind+1:]
取出最后一个标记时,其中t_ind
是最后一次出现的索引。但是在这里,我们需要将1添加到t_ind,这样我们就可以从\t
之后的最后一个标记的开始开始开始。由于我们需要获取最后一个字符的最后一个标记,因此没有给line[t_ind+1:]
提供结束索引。希望这是有意义的可以使用两个位置参数和
及
输出:
我认为它可以通过使用迭代器来解决
如果您只想要
abc
和jkl
,请尝试使用find
和rfind
进行实验相关问题 更多 >
编程相关推荐