#python #list #loops
Вопрос:
У меня есть список чисел, которые изначально увеличиваются с одинаковой скоростью. Например:
[0,3,6,9,12,15,18...]
Однако при достижении определенной точки в списке увеличение стоимости фактически увеличивается.
[0,3,6,9,12,15,18...150,156,162,168,174...240]
Я хочу просмотреть этот список и создать два новых списка. Один, где число увеличивается на 3, и один, когда числа начинают увеличиваться на 6. Однако я не уверен, как именно написать код, который определяет, когда происходит это изменение.
Ожидаемый результат: [0,3,6,9,12,15,18…,147] [150,156,162,168,174…240]
Комментарии:
1. Какой у вас вопрос по поводу этой задачи?
2. Похоже, вы разобрались в логике (пройдите по списку, сгенерируйте два новых списка, в одном из которых каждый последовательный элемент имеет разницу в три, а в другом-разность в 6). Есть ли какая-то конкретная часть кодирования, на которой вы застряли?
3. Да, выясняю, как написать код, чтобы определить, когда числа перестают увеличиваться с одинаковой скоростью.
4. И что же вы выяснили?
5. Не уверен, о чем ты просишь. У меня есть четкое представление о том, чего я хочу достичь. Я просто не уверен, какую логику использовать, чтобы определить, когда числа перестают расти с одинаковой скоростью.
Ответ №1:
def splitList(list):
if(len(list) < 2):
return [], []
listX = []
listY = []
dif = list[1] - list[0]
for e in list:
if(e == list[0]):
listX.append(e)
elif(e - listX[len(listX)-1] == dif):
listX.append(e)
else:
listY.append(e)
return listX, listY
Ответ №2:
Проверить это?
test_list=[0,3,6,9,12,15,18,21,27,33,39,45] #=== List
list_3=[]
list_6=[]
new_list=[]
for j,i in enumerate(test_list): #=== Gives index number for each element in the list
try: #== Check for exceptions, if one occurs, goes to 'except:' statement
op=test_list[j 1] #== Get the elements from index position 1 ahead of the current ome
if op-3==i: #== check if the the difference is 3
list_3.append(i)
elif op-6==i: #== check if the the difference is 6
list_6.append(i)
except:
pass
new_list.append(list_3)
new_list.append(list_6)
print(new_list)