python 2.7 - 将列表从 a 切片到 b,而不是从 b 到 c,

python 2.7 - slice a list from a to b than b to c,

您好,我只是想从积分列表中获取积分。 步骤也都在列表里,每一步都不一样

例如:按索引从 0 到 10 获取分数而不是从 11 到 16。

列表是示例。真正的名单要大得多。

这是我的代码:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *


number=[10,5,2,20,..,4)
pointlist=[point1,point2,..,point900]
result=[]
a=0
i=0

for elem in number:
    result.append(list[a:a+number[i]])
    i+=1

print = result

瞬间报错

TypeError: expected Array[Type], got slice
in line "result.append(list[a:a+number[i]])"

我做错了什么? 任何帮助都会很棒!

这是一个类似主题的link:Explain Python's slice notation

这是您要找的吗:

number=[10,5,2,20,12,15,6,9,12,14,4]
pointlist=[2,4,7,10]
result=[]
index = 0

for elem in pointlist:
    result.append(number[index:elem])
    index = elem
result.append(number[index:])
print(result)

输出:

[[10, 5], [2, 20], [12, 15, 6], [9, 12, 14], [4]]

您使用了错误的名称 list 但您有 pointlist

而且您不需要 i 因为您可以使用 elem

number = [10, 5, 2, 20, 4]

pointlist = ['point'+str(i) for i in range(1, 51)]

result = []

a = 0

for elem in number:
    b = a + elem
    result.append(pointlist[a:b])
    a = b

print(result)

结果

[
  ['point1', 'point2', 'point3', 'point4', 'point5', 'point6', 'point7', 'point8', 'point9', 'point10'], 
  ['point11', 'point12', 'point13', 'point14', 'point15'], 
  ['point16', 'point17'], 
  ['point18', 'point19', 'point20', 'point21', 'point22', 'point23', 'point24', 'point25', 'point26', 'point27', 'point28', 'point29', 'point30', 'point31', 'point32', 'point33', 'point34', 'point35', 'point36', 'point37'], 
  ['point38', 'point39', 'point40', 'point41']
]