Я учусь на вложенных циклах в Python.
Ниже я написал свой код.Я хочу упростить мой код, поскольку, когда я запускаю код, для получения результата требуется так много времени.
У меня есть список, содержащий 1000 значений:
Brake_index_values = [ 44990678, 44990679, 44990680, 44990681, 44990682, 44990683,
44997076, 44990684, 44997077, 44990685,
...
44960673, 8195083, 8979525, 100107546, 11089058, 43040161,
43059162, 100100533, 10180192, 10036189]
Яхранение элемента № 1 в другом списке
original_top_brake_index = [Brake_index_values[0]]
Я создал временный список с именем temp и массивом numpy для итерации по циклу:
temp =[]
arr = np.arange(0,1000,1)
Операция цикла:
for i in range(1, len(Brake_index_values)):
if top_15_brake <= 15:
a1 = Brake_index_values[i]
#a2 = Brake_index_values[j]
a3 = arr[:i]
for j in a3:
a2 = range(Brake_index_values[j] - 30000, Brake_index_values[j] + 30000)
if a1 in a2:
pass
else:
temp.append(a1)
if len(temp)== len(a3):
original_top_brake_index.append(a1)
top_15_brake += 1
del temp[:]
else:
del temp[:]
continue
Я сравниваю элемент Brake_index_values[1]
, доступный в диапазоне от 30000 до и после элемента Brake_index_values[0]
, то есть `range (Brake_index_values [0] -30000, Brake_index_values [0] +30000).
Если Brake_index_values[1]
доступно между диапазонами, я должен игнорировать этот элемент и перейти к следующему элементу Brake_index_values[2]
и следовать тому же процессу, что и ранее для Brake_index_values[0]
& Brake_index_values[1]
Если этодоступно, сохраните значение в original_top_brake_index
тщательной операции добавления.
Другими словами:
(Давайте возьмем 3 значения a, b и c. Я проверяю, находится ли значение b в диапазоне между (a-30000 до + 30000). Возможность 1: Если b находится между (a-30000 до + 30000), игнорируйте этот элемент (Здесь я храню во временном списке). Затем тот же процесс продолжается с c (следующий элемент) Возможность 2: Если b не в b/ w эти диапазоны помещают b в другой список с именем original_top_brake_index (этот другой список является фактическим результатом, который мне нужен)
Результат, который я получаю:
Это работает, но это занимает так много временичтобы завершить операцию, и иногда это показывает MemoryError.
Я просто хочу, чтобы мой код работал проще и эффективнее с простыми операциями.