如何在python中匹配字符串后获取列表中的所有元素

假设我有一个清单:


list1 = ['abc','a','e','i','o','abc','l','m','n']

我可以知道如何获取“abc”之后的所有元素并分组或制作它的子列表,包括“abc”本身吗?


结果变成:


[['abc','a','e','i','o'],['abc','l','m','n']]

我已经尝试过了,但它不像我想要的那样:


  lineslist=[]

  for line in list1:

    if line.startswith('abc'):

       linelist.append(line)


     else:

        linelist.append(line)


摇曳的蔷薇
浏览 247回答 2
2回答

慕森卡

直截了当:lst = ['abc','a','e','i','o','abc','l','m','n']res = []for s in lst:    if s == 'abc':        res.append([])    if res: res[-1].append(s)print(res)输出:[['abc', 'a', 'e', 'i', 'o'], ['abc', 'l', 'm', 'n']]

慕少森

最快的方法:>>> lst = ['abc','a','e','i','o','abc','l','m','n']>>> seps = [i for i in range(len(lst)) if lst[i] == 'abc']>>> if len(seps) :...     seps.append( len(lst) )>>> print [lst[a:b] for a,b in zip(seps, seps[1:])][['abc', 'a', 'e', 'i', 'o'], ['abc', 'l', 'm', 'n']]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python