Форум » Массивы, сортировка, работа с файлами » Задание 26 (задача № 45) » Ответить

Задание 26 (задача № 45)

dim18: Здравствуйте! Подскажите, пож., в чем смысл строки who = dict(zip(data, [1 for i in range(N)])). Почему к словарю обращается второе условие, а не к самому списку значений?

Ответов - 4

Поляков: Главная проблема этой задачи в том, что нам нужно быстро искать среднее арифметическое очередной пары в массиве данных. Быстро искать можно в словаре (не в массиве). Поэтому мы строим фиктивный словарь, в котором важны только ключи (прочитанные данные), а значения (соответствующие ключам) все равны 1, мы их не используем.

dim18: Спасибо! Правильно я понял, что скорость обработки словаря по ключам выше, чем списка по значениям при равном объеме?

Поляков: dim18 пишет: скорость обработки словаря по ключам выше, чем списка по значениям при равном объеме? Намного выше. Если значения нет в списке, нужно просмотреть все 100500 элементов списка (сложность O(N)). А в словаре вы получаете ответ сразу, без просмотра (сложность O(1)).


dim18: Понятно, спасибо!



полная версия страницы