为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2022-05-19 19:01:42
假设我有一个清单: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)
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

直截了当:


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


查看完整回答
反对 回复 2022-05-19
?
慕少森

TA贡献2019条经验 获得超9个赞

最快的方法:


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


查看完整回答
反对 回复 2022-05-19
  • 2 回答
  • 0 关注
  • 246 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号