我正在尝试拆分来自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)
答案 0 :(得分:1)
我试图将24个对象的列表分成4个部分[...],因此每个[...]是一个单独的列表[]有6个元素
我正在回答那个问题。我不知道你写的任何其他内容对这个问题很重要,所以如果我误解了你,我会删除你的答案。
>>> 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个任意对象的列表。