#python #python-3.x #nested-loops
#python #python-3.x #вложенные циклы
Вопрос:
У меня есть вложенный цикл, который я пытаюсь сделать более эффективным.
Мне нужно найти способ ускорить выполнение — я думаю, проблема в том, что мне нужно хэшировать оба значения, чтобы провести сравнение и найти правильное значение.
Есть ли более простой способ сделать это?
Я пробовал разные способы объединения значений — присваивание значений в разных точках, но я не вижу никакой реальной экономии времени.
for val1 in text_list:
for val2 in text_list:
hashed_text = hashlib.sha256(val1.encode() val2.encode()).hexdigest()
if hashed_text == expected_value:
return val1, val2
Входной файл содержит более 1 тыс. записей и занимает ~ 1 секунду, мне нужно найти способ сократить время выполнения.
Ответ №1:
если бы вы добавили несколько примеров, я мог бы протестировать и сравнить это. без этого вот кое-что непроверенное, что может помочь: это уменьшает вычисление хэша val1
:
for val1 in text_list:
h = hashlib.sha256(val1.encode())
for val2 in text_list:
h2 = h.copy()
h2.update(val2.encode())
hashed_text = h2.hexdigest()
if hashed_text == expected_value:
return val1, val2
но, как я уже сказал, я не могу проверить, помогает ли это в вашем случае…