假設我有一個清單: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']]

慕少森
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']]
添加回答
舉報
0/150
提交
取消