170 похожих чатов

Всем привет. Подскажите, что делаю не так? Функция принимает на вход

список вида:
[{'file_size': int, 'time': float}, {'file_size': int, 'time': float}...]
После чего я считаю скорость и из отсортированного списка скоростей беру медиану.
И теперь мне хочется результаты сохранить в жсон вида:
{
hash_function_1: [{'speed': float, 'block_size': int}, {'speed': float, 'block_size': int}...],
hash_function_2: [{'speed': float, 'block_size': int}, {'speed': float, 'block_size': int}...],
}
То, что у меня сделано сейчас, почему-то пихает все результаты под один ключ hash_function, хотя их точно два, они передаются как параметр. Сам код в пасте: https://pastebin.com/M1i7KMEJ

11 ответов

22 просмотра

Вы приложили код функции. В 1-й строке принимаете параметр hash_function. Нужно смотреть код снаружи, который hash_function в функцию кладёт.

AstralRomance- Автор вопроса
Roman Voronov
Вы приложили код функции. В 1-й строке принимаете ...

Да, действительно, ошибка оказывается в вызове. Для дебага оставил меньшую часть, суть в том, что здесь во внешнем цикле не меняется значение hash_function: for hash_function in ['SHA-256', 'SHA-512']: while block_size <= 512: total_upload_time = [] total_download_time = [] print(source_compose['services']['app']['environment']) for index, env_var in enumerate(source_compose['services']['app']['environment']): if 'BLOCK_SIZE' in env_var.split('='): source_compose['services']['app']['environment'][index] = f'BLOCK_SIZE={block_size}' if 'HASH_TYPE' in env_var.split('='): source_compose['services']['app']['environment'][index] = f'HASH_TYPE={hash_function}' with open('docker-compose.yml', 'w') as src_f: target_compose = ruamel.yaml.YAML() target_compose.dump(source_compose, src_f) block_size *= 2 continue

AstralRomance
Да, действительно, ошибка оказывается в вызове. Дл...

Следующая проверка точно выполняется? Это единственное место, на которое сейчас влияет hash_function. if 'HASH_TYPE' in env_var.split('=')

AstralRomance- Автор вопроса

Да. Я попробовал вывести значение hash_function в начале и в конце внутреннего цикла, и во внутреннем цикле hash_function всегда SHA-256

AstralRomance
Да. Я попробовал вывести значение hash_function в ...

Ерунда какая-то, что-то не сходится. Попробуйте жёстче отследить происходящее. Начните с самого простого, убедитесь что значения меняются: for hash_function in ['SHA-256', 'SHA-512']: print(hash_function) И потихоньку наращивайте скрипт, следите когда сломается. Похоже, какая-то логика ускользает от нас.

AstralRomance- Автор вопроса
Roman Voronov
Ерунда какая-то, что-то не сходится. Попробуйте жё...

Я и говорю. Значения во внутреннем цикле не меняются.

AstralRomance- Автор вопроса
Roman Voronov
Даже в моём примере из 2-х строк выше?

Вот в этом примере: block_size = 256 for hash_function in ['SHA-256', 'SHA-512']: print(f'{hash_function=}') while block_size <= 512: print(f'{hash_function} - {block_size}') total_upload_time = [] total_download_time = [] for index, env_var in enumerate(source_compose['services']['app']['environment']): if 'BLOCK_SIZE' in env_var.split('='): source_compose['services']['app']['environment'][index] = f'BLOCK_SIZE={block_size}' if 'HASH_TYPE' in env_var.split('='): source_compose['services']['app']['environment'][index] = f'HASH_TYPE={hash_function}' #print(source_compose) with open('docker-compose.yml', 'w') as src_f: target_compose = ruamel.yaml.YAML() target_compose.dump(source_compose, src_f) block_size *= 2 print(hash_function) continue Я имею следующий вывод: hash_function='SHA-256' SHA-256 - 256 SHA-256 SHA-256 - 512 SHA-256 hash_function='SHA-512'

AstralRomance- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта