Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在特定点分隔列表?_Python - Fatal编程技术网

Python 如何在特定点分隔列表?

Python 如何在特定点分隔列表?,python,Python,我有: 我想根据Z列表将列表M分开,如下所示: Z = [2, 3, 2] M = [2, 6, 3, 1, 5, 8, 3] 我试过: l = [[2, 6], [3, 1, 5], [8, 3]] 但是后来我得到了一个空列表l=[]这应该更容易对列表进行切片,下面的代码可以完成这项工作: z = 0 l = list() for i, z in enumerate(M): if z == Z[0]: l.append(M[z:i+1]) z = i

我有:

我想根据
Z
列表将列表
M
分开,如下所示:

Z = [2, 3, 2]
M = [2, 6, 3, 1, 5, 8, 3]
我试过:

l = [[2, 6], [3, 1, 5], [8, 3]]

但是后来我得到了一个空列表
l=[]

这应该更容易对列表进行切片,下面的代码可以完成这项工作:

z = 0
l = list()
for i, z in enumerate(M):
    if z == Z[0]:
        l.append(M[z:i+1])
        z = i+1
        del Z[0]
    z = z+1

这里,
idx
跟踪已处理的元素数量。要使其正常工作,我们需要
sum(Z)=len(M)

这应该更容易对列表进行切片,以下代码可以完成这项工作:

z = 0
l = list()
for i, z in enumerate(M):
    if z == Z[0]:
        l.append(M[z:i+1])
        z = i+1
        del Z[0]
    z = z+1
这里,
idx
跟踪已处理的元素数量。为了使其正常工作,我们需要
sum(Z)=len(M)

您可以执行以下操作(假设我正确理解您的问题):

这将为您提供所需的输出:

M = [2, 6, 3, 1, 5, 8, 3]
Z = [2, 3, 2]
l=[]

for z in Z:
    l.append(M[0:z])
    del M[0:z]
因此,您基本上只需循环执行
Z
,将
Z
的第一个
Z
元素附加到列表
l
中,然后从列表中删除这些
M

您可以执行以下操作(假设我正确理解您的问题):

[[2, 6], [3, 1, 5], [8, 3]]
这将为您提供所需的输出:

M = [2, 6, 3, 1, 5, 8, 3]
Z = [2, 3, 2]
l=[]

for z in Z:
    l.append(M[0:z])
    del M[0:z]
因此,您基本上只需循环执行
Z
,将
Z
的第一个
Z
元素附加到列表
l
中,然后从列表
M
中删除这些元素

[[2, 6], [3, 1, 5], [8, 3]]
输出:

import itertools
M = [2, 6, 3, 1, 5, 8, 3]
Z = [2, 3, 2]

[M[x[1]-x[0]:x[1]] for x in zip(Z,itertools.accumulate(Z))]
输出:

import itertools
M = [2, 6, 3, 1, 5, 8, 3]
Z = [2, 3, 2]

[M[x[1]-x[0]:x[1]] for x in zip(Z,itertools.accumulate(Z))]

使用“代码格式”选项使代码可读。此外,由于这是Python,它将方便地保留空白。错误做法使用代码格式选项使代码可读。此外,由于这是Python,它将方便地保留空白。糟糕的练习谢谢!!我把问题复杂化了。我没有多少经验,很高兴能帮上忙!也谢谢你接受了答案!享受stackoverflow并继续进行黑客攻击:)谢谢!!我把问题复杂化了。我没有多少经验,很高兴能帮上忙!也谢谢你接受了答案!享受stackoverflow并继续进行黑客攻击:)