2016-12-28 2 views
0

Привет, я просто хочу получить очки из списка точек. Этапы также находятся в списке, каждый шаг отличается.python 2.7 - отрезать список от a до b, чем от b до 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]])" 

Что им делать неправильно? Любая помощь будет замечательной!

Вот ссылка на тему: Explain Python's slice notation

+0

вам не нужно 'i' и использовать' [а: + Элем] ' – furas

+0

'list' - это функция для создания списка - вам, вероятно, нужно другое имя, т.е. 'pointlist' – furas

ответ

1

Вы используете неправильное имя 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'] 
] 
1

ли это то, что вы ищете:

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]] 
+0

Thx для справки, но это не то, что мне нужно. Посмотрите на фурас ответ ниже вашего. – Yuli

+0

О, хорошо. Извини за это. –

Смежные вопросы