我有一個要拆分為多個子串列的串列
acq=['A1', 'A2', 'D', 'A3', 'A4', 'A5', 'D', 'A6']
ll=[]
for k,v in enumerate(acq):
if v == 'D':
continue # continue here
ll.append(v)
print(ll)
上面的解決方案給出了一個擴展的附加串列,這不是我想要的。我想要的解決方案是:
['A1', 'A2']
['A3', 'A4', 'A5']
['A6']
uj5u.com熱心網友回復:
嘗試itertools.groupby:
from itertools import groupby
acq = ["A1", "A2", "D", "A3", "A4", "A5", "D", "A6"]
for v, g in groupby(acq, lambda v: v == "D"):
if not v:
print(list(g))
印刷:
['A1', 'A2']
['A3', 'A4', 'A5']
['A6']
uj5u.com熱心網友回復:
沒有額外的庫,并回傳串列串列:
acq=['A1', 'A2', 'D', 'A3', 'A4', 'A5', 'D', 'A6']
all_list=[]
ll=[]
for i in acq:
if i == 'D':
all_list.append(ll)
ll=[]
continue
ll.append(i)
all_list.append(ll)
print(*all_list,sep='\n')
列印:
['A1', 'A2']
['A3', 'A4', 'A5']
['A6']
uj5u.com熱心網友回復:
acq=['A1', 'A2', 'D', 'A3', 'A4', 'A5', 'D', 'A6']
ll=[]
temp=[]
for k,v in enumerate(acq):
if v == 'D':
ll.append(temp)
temp=[]
continue # continue here
temp.append(v)
l1.append(temp)
print(ll)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439272.html
上一篇:如何在python3.10中對物件的二維串列進行分組?
下一篇:從資料框列中提取唯一關鍵字和計數
