去除列表的分隔符

2024-04-25 03:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

假设你有清单

`[1, 0, -1, 0, ';', 2, 0, 0, -1, ';', 0, 1, 0, -1, ';', 0, 1, -2, 0, ';', 0, 3, -6, 0, ';']`

什么是最简单的方法来修剪它,说第二次出现“;”,输出

[1, 0, -1, 0, ';', 2, 0, 0, -1, ';', 0, 1, 0, -1, ';', 0, 1, -2, 0]


Tags: 方法
2条回答
def get_part(lst,sep=';'):
    out = []
    for i in lst:
        if i == sep:
           yield out
           out = []
        else:
           out.append(i)

(您已经从您的previous question中获得)。在

现在,要修剪它,我们需要转换为一个列表:

^{pr2}$

但我之前的建议仍然有效。更好的数据结构是列表列表。在

如果您有一个列表作为输入,您可以尝试查找";"的索引,然后从中进行操作:

>>> L = [1, 0, -1, 0, ';', 2, 0, 0, -1, ';', 0, 1, 0, -1, ';', 0, 1, -2, 0, ';', 0, 3, -6, 0, ';']
>>> idx = [i for (i,v) in enumerate(L) if v == ";"]
>>> L[:idx[-2]]
[1, 0, -1, 0, ';', 2, 0, 0, -1, ';', 0, 1, 0, -1, ';', 0, 1, -2, 0, ';', 0, 3, -6, 0, ';']

相关问题 更多 >