拆分列表并将它们附加到单独的列表

splitting lists and append them to separate lists

我正在尝试拆分来自 grasshopper3d 的包含 24 个对象的列表, [poly-lines1][poly-lines2]...[poly-lines24] 分为 4 个部分,因此每 6 个多段线列表可以附加到不同且单独的列表 - 每个 6 个对象代表一个框的面,所以每个框都是一个单独的列表 [],其中有 6 个元素——我一直在尝试使用 itertools 库来做到这一点,但我在功能上遇到了问题。 我也试图拆分列表。

def split(polyLines,list_i,n):
    list_i.append(polyLines[0:len(polyLines):n])
    print list_i
    return list_i


lists_of_rocks = int(len(polyLines)/6)

for i in range(0,lists_of_rocks):
    list_i = []
    print list_i

    #split(polyLines,list_i,n)
    islice(polyLines,6)

def islice(polyLines,6):
    # islice('ABCDEFG', 2) --> A B
    # islice('ABCDEFG', 2, 4) --> C D
    # islice('ABCDEFG', 2, None) --> C D E F G
    # islice('ABCDEFG', 0, None, 2) --> A C E G
    s = slice(6)
    it = iter(xrange(s.start or 0, s.stop or sys.maxint, s.step or 1))
    nexti = next(it)
    for i, element in enumerate(polyLines):
        if i == nexti:
            yield element
            nexti = next(it)

I am trying to split a list of 24 objects [...] into 4 parts [...] so each [...] is a seperate list [] has 6 elements

我正在回答那个问题。我不知道你写的其他内容对这个问题有何影响,所以如果我误解了你,我会删除我的答案。

>>> l = range(24)
>>> result = [l[i:i+6] for i in range(0, len(l), 6)]
>>> for x in result: x
... 
[0, 1, 2, 3, 4, 5]
[6, 7, 8, 9, 10, 11]
[12, 13, 14, 15, 16, 17]
[18, 19, 20, 21, 22, 23]

l 是您的 24 个任意对象的列表。