Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中匹配字符串后如何获取列表中的所有元素_Python_List - Fatal编程技术网

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

python中匹配字符串后如何获取列表中的所有元素,python,list,Python,List,假设我有一个清单: list1 = ['abc','a','e','i','o','abc','l','m','n'] 我可以知道如何获取“abc”和“group”之后的所有元素,或者制作它的子列表,包括“abc”本身吗 结果是: [['abc','a','e','i','o'],['abc','l','m','n']] 我已经试过了,但它不是我想要的: lineslist=[] for line in list1: if line.startswith('abc'):

假设我有一个清单:

list1 = ['abc','a','e','i','o','abc','l','m','n']
我可以知道如何获取“abc”和“group”之后的所有元素,或者制作它的子列表,包括“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)
直截了当地说:

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']]

list1=[abc,a,e,i,o,abc,l,m,n]
不是有效的python代码。我假设所有元素都是字符串?你的两行示例没有显示为字符串,但你的代码块显示为字符串。这个漂亮代码可能出现的唯一问题是列表不要从
abc
@ElegantOdoo开始,我有这样的想法,但我正在等待OP may注意到这一点。不管怎样,看看我的最新消息你是怎么想到这个的,你是一个真正的蟒蛇主义者