Обучающий курс: stepik.org/a/134212 Инфо-сайт: proproprogs.ru/structure_data Классы, отвечающие за работу с хэш-таблицами в Python и С++. Для языка Python: dict и set. Для языка С++: unordered_map, unordered_set.
Пікірлер: 28
@user-qq3du6xt9y3 ай бұрын
Вы Человек с большой буквы, корысти ноль, ибо другие подобные уроки не найти в бесплатном виде, да еще и таком исполнении, вы просто .... даже слов нет как вас отблагодарить за такие уроки, благодаря вам занялся изучением Питона, до этого 2 года не мог найти подходящие уроки! СПАСИБО ВАМ БОЛЬШОЕ!
@user-nx4oi5pt2u Жыл бұрын
Ну, как обычно до конца доходят лишь избранные. Спасибо автору за контент!
@nataliekondrash6229 Жыл бұрын
Сергей, большое спасибо за Ваш труд!
@Mary_jannis6 ай бұрын
Огромное спасибо за такие подробные объяснения, смотрела у вас уже несколько плейлистов, всё доходчиво и наглядно
@sashaperdunov2209 Жыл бұрын
Серёга, ты красавчик
@glingrad74442 ай бұрын
Легенда
@siarheiulas696911 ай бұрын
Огромное спасибо за Вашу работу! Замечательные видео с понятным и подробным объяснением тем!!!
@user-zc9zl8rd7k3 ай бұрын
Спасибо за ваш труд!
@user-rw9nz5io9t Жыл бұрын
Я еще на курсе для начинающих, но каждое новое видео смотрю) ни чего особо не понимаю, что хорошо мотивирует обучение) Спасибо за полезный контент а за бесплатные курсы у Вас будет обязательно место в раю)
@igorfulcrum58838 ай бұрын
Это апостол Пётр написал?)
@reycorbie35816 ай бұрын
Спасибо за курс!
@user-qz4ey5bi5d Жыл бұрын
Спасибо!
@alexanderez6115 Жыл бұрын
Спасибо, очень полезный плейлист. Сергей, будут ли еще видео по структурам данных?
@selfedu_rus Жыл бұрын
пока остановился на этом )
@user-ll2ev4zg7z Жыл бұрын
Сергей, здравствуйте. Подскажите в какой последовательности смотреть видео для полноценного изучения темы алгоритмов и структуры данных? Вопрос возникает потому, что на канале есть несколько плейлистов, связанных с этой темой.
@selfedu_rus Жыл бұрын
Я думаю, лучше с этого плейлиста, а дальше все остальное (по алгоритмам)
@user-ll2ev4zg7z Жыл бұрын
Спасибо!
@user-qc6vu1xx5g Жыл бұрын
Сергей большое спасибо за видео, а новые выпуски планируются, или по структурам уже все?
@selfedu_rus Жыл бұрын
вот думаю, углубляться или пока так оставить ))
@user-qc6vu1xx5g Жыл бұрын
@@selfedu_rus Кто за углубление ставьте + под этим комментарием)
@truetruth666 Жыл бұрын
@@user-qc6vu1xx5g +++
@user-qn6pq1dk5h Жыл бұрын
@@selfedu_rusСергей, если есть возможность, мы только за! Пусть нас таких около тысячи, но контент - топ!
@antonivanov38307 ай бұрын
а рассматривались ли красно-чёрные деревья до этого ролика? возможно, я что-то пропустил Автору спасибо за серию полезных роликов👏🏻👏🏻
@selfedu_rus7 ай бұрын
спасибо! нет, не рассматривались
@user-bw5in2yo7s Жыл бұрын
Сергей, в python 1, 1.0 и True - экземпляры разных классов. Но, очевидно, их значения равны 1. Следовательно и их хеш равен 1. Если решить использовать три этих значения в качестве ключей словаря, возникнет коллизия. Где-то слышал, что python решит эту коллизию просто построив у такого хеша односвязный список, куда и добавит все значения для таких ключей. Т.е. будет только один из ключей с одинаковым хешем и значения всех ключей. На практике dict решает взять только самый первый ключ и самое последнее значение. Видимо, неявно вызывает метод update. dict(1: "Ключ=1", True: "Ключ=True", 1.0: "Ключ=1.0") выведет {1: 'Ключ=1.0'} dict реализован непосредственно на C, поэтому непонятно, что на самом деле он делает, но коллизия не разрешается. Но если из collections взять defaultdict и указать в качестве фабрики, например, list, то мы увидим самый первый ключ и в списке все значения ключей, чей хеш совпал. defaultdict(, {1: ['Ключ=1', 'Ключ=True', 'Ключ=1.0']). Т.е. здесь коллизия разрешается таким образом. Аналогичная проблема возникает, если в ключ передать несколько равных по содержанию кортежей или frozen_set. Хоть в памяти компьютера это будут разные объекты, их хеш будет равен и dict опять возьмет самый первый ключ и самое последнее значение. А равные по содержанию строки не только будут иметь одинаковый хеш, но вообще окажутся буквально одним объектом в памяти. Есть ли у вас мысли по этой проблеме? Сталкивались ли вы с таким? И можно ли как-то обойти эту особенность питоновских словарей? В принципе можно словить довольно неочевидные ошибки, если в цикле в ключи словаря будут добавляться строки, значение которых потенциально может совпасть.
@selfedu_rus Жыл бұрын
Да, очень хорошее дополнение, спасибо!
@user-fs9ou5lx9l Жыл бұрын
В данном случае никакой коллизии нет. Как вы и написали 1 == True == 1.0. Т.е. после вычисления хэша питон сравнивает значения, а они так же равны, поэтому он апдейтит уже существующее значение. Вывод - не использовать разные типы в качестве ключей словаря, что и правильно с точки зрения чистоты кода. Линтеры так же должны ругаться на подобный код (проверил пайлинтом: W0109: Duplicate key True in dictionary (duplicate-key) )
@ska6391 Жыл бұрын
Новое видео выходит-ставлю лайк авансом. Так как автор мне очень помог разобраться в материала благодаря своей подаче. Когда стану 300к/наносек-скину тебе долю, если ты читаешь это)))