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注意到这一点。不管怎样,看看我的最新消息你是怎么想到这个的,你是一个真正的蟒蛇主义者