我喜欢使用列表项作为分隔符来标记列表。
是否有 pythonic 方式来执行此操作,还是我必须自己编写一些东西。
Data=['Label',23,'NORM','|','RESP',1.256,None,'|','','','|','RELV','','']
SubList = TokenizeList (Data,Delim='|')
打印 SubList 会导致
[ ['Label',23,'NORM'] , ['RESP',1.256,None] , ['',''] , ['RELV','',''] ]
最佳答案
是的,您可以使用 itertools.groupby
:
>>> from itertools import groupby
>>> Data=['Label',23,'NORM','|','RESP',1.256,None,'|','','','|','RELV','','']
>>> [list(g) for k,g in groupby(Data,key=lambda x:x == '|') if not k]
[['Label', 23, 'NORM'], ['RESP', 1.256, None], ['', ''], ['RELV', '', '']]
你当然可以做一个函数:
def splitList(sequence, delimiter):
return [list(g) for k, g in groupby(sequence, key = lambda x: x == delimiter) if not k]
>>> splitList(sequence = Data, delimiter = '|')
[['Label', 23, 'NORM'], ['RESP', 1.256, None], ['', ''], ['RELV', '', '']]
关于python - 标记列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212497/