Я учусь на вложенных циклах в 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
тщательной append
операции.
Результат, который я получаю:
Работает, но работаетНа завершение операции уходит так много времени, а иногда отображается MemoryError.
Требование:
Я просто хочу, чтобы мой код работал проще и эффективнее с простыми операциями.
Запрос:
Я не хороший кодер, в любом случае, я уверен, что будет какой-то простой способ сделатьвышеуказанный процесс.Пожалуйста, пролите свет, чтобы избежать этой проблемы или нового подхода.