python - 标记列表

标签 python python-3.x

我喜欢使用列表项作为分隔符来标记列表。

是否有 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/

相关文章:

python - 在 Pandas 中交换/订购多索引列

python - 错误 : can't get the inverse laplace transform expression with sympy

python - 如何过滤数据框以便在特定时间每天发生一次

python - 在 CPython 中搜索 DLL 的变量 PATH

python - 在装饰器中访问函数属性

python - 从标准输入读取二进制数据

python - 前置字长

具有基于键的默认值的Python dict

python - aiohttp:如何将sub_app添加到sub_app?

python - QtGlobal 声明可以在 PyQt5 中访问吗?