Форум » Массивы, сортировка, работа с файлами » Задание 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: Понятно, спасибо!
полная версия страницы