#28. Использование хэш-таблиц в Python и С++ | Структуры данных

  Рет қаралды 7,719

selfedu

selfedu

Жыл бұрын

Обучающий курс: stepik.org/a/134212
Инфо-сайт: proproprogs.ru/structure_data
Классы, отвечающие за работу с хэш-таблицами в Python и С++. Для языка Python: dict и set. Для языка С++: unordered_map, unordered_set.

Пікірлер: 28
@user-qq3du6xt9y
@user-qq3du6xt9y 3 ай бұрын
Вы Человек с большой буквы, корысти ноль, ибо другие подобные уроки не найти в бесплатном виде, да еще и таком исполнении, вы просто .... даже слов нет как вас отблагодарить за такие уроки, благодаря вам занялся изучением Питона, до этого 2 года не мог найти подходящие уроки! СПАСИБО ВАМ БОЛЬШОЕ!
@user-nx4oi5pt2u
@user-nx4oi5pt2u Жыл бұрын
Ну, как обычно до конца доходят лишь избранные. Спасибо автору за контент!
@nataliekondrash6229
@nataliekondrash6229 Жыл бұрын
Сергей, большое спасибо за Ваш труд!
@Mary_jannis
@Mary_jannis 6 ай бұрын
Огромное спасибо за такие подробные объяснения, смотрела у вас уже несколько плейлистов, всё доходчиво и наглядно
@sashaperdunov2209
@sashaperdunov2209 Жыл бұрын
Серёга, ты красавчик
@glingrad7444
@glingrad7444 2 ай бұрын
Легенда
@siarheiulas6969
@siarheiulas6969 11 ай бұрын
Огромное спасибо за Вашу работу! Замечательные видео с понятным и подробным объяснением тем!!!
@user-zc9zl8rd7k
@user-zc9zl8rd7k 3 ай бұрын
Спасибо за ваш труд!
@user-rw9nz5io9t
@user-rw9nz5io9t Жыл бұрын
Я еще на курсе для начинающих, но каждое новое видео смотрю) ни чего особо не понимаю, что хорошо мотивирует обучение) Спасибо за полезный контент а за бесплатные курсы у Вас будет обязательно место в раю)
@igorfulcrum5883
@igorfulcrum5883 8 ай бұрын
Это апостол Пётр написал?)
@reycorbie3581
@reycorbie3581 6 ай бұрын
Спасибо за курс!
@user-qz4ey5bi5d
@user-qz4ey5bi5d Жыл бұрын
Спасибо!
@alexanderez6115
@alexanderez6115 Жыл бұрын
Спасибо, очень полезный плейлист. Сергей, будут ли еще видео по структурам данных?
@selfedu_rus
@selfedu_rus Жыл бұрын
пока остановился на этом )
@user-ll2ev4zg7z
@user-ll2ev4zg7z Жыл бұрын
Сергей, здравствуйте. Подскажите в какой последовательности смотреть видео для полноценного изучения темы алгоритмов и структуры данных? Вопрос возникает потому, что на канале есть несколько плейлистов, связанных с этой темой.
@selfedu_rus
@selfedu_rus Жыл бұрын
Я думаю, лучше с этого плейлиста, а дальше все остальное (по алгоритмам)
@user-ll2ev4zg7z
@user-ll2ev4zg7z Жыл бұрын
Спасибо!
@user-qc6vu1xx5g
@user-qc6vu1xx5g Жыл бұрын
Сергей большое спасибо за видео, а новые выпуски планируются, или по структурам уже все?
@selfedu_rus
@selfedu_rus Жыл бұрын
вот думаю, углубляться или пока так оставить ))
@user-qc6vu1xx5g
@user-qc6vu1xx5g Жыл бұрын
@@selfedu_rus Кто за углубление ставьте + под этим комментарием)
@truetruth666
@truetruth666 Жыл бұрын
@@user-qc6vu1xx5g +++
@user-qn6pq1dk5h
@user-qn6pq1dk5h Жыл бұрын
@@selfedu_rusСергей, если есть возможность, мы только за! Пусть нас таких около тысячи, но контент - топ!
@antonivanov3830
@antonivanov3830 7 ай бұрын
а рассматривались ли красно-чёрные деревья до этого ролика? возможно, я что-то пропустил Автору спасибо за серию полезных роликов👏🏻👏🏻
@selfedu_rus
@selfedu_rus 7 ай бұрын
спасибо! нет, не рассматривались
@user-bw5in2yo7s
@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
@selfedu_rus Жыл бұрын
Да, очень хорошее дополнение, спасибо!
@user-fs9ou5lx9l
@user-fs9ou5lx9l Жыл бұрын
В данном случае никакой коллизии нет. Как вы и написали 1 == True == 1.0. Т.е. после вычисления хэша питон сравнивает значения, а они так же равны, поэтому он апдейтит уже существующее значение. Вывод - не использовать разные типы в качестве ключей словаря, что и правильно с точки зрения чистоты кода. Линтеры так же должны ругаться на подобный код (проверил пайлинтом: W0109: Duplicate key True in dictionary (duplicate-key) )
@ska6391
@ska6391 Жыл бұрын
Новое видео выходит-ставлю лайк авансом. Так как автор мне очень помог разобраться в материала благодаря своей подаче. Когда стану 300к/наносек-скину тебе долю, если ты читаешь это)))
Как работают словари в Python | Хэш-таблицы [Any]
23:02
Павлин Шарит - ИТ вместе с Николаем Павлиным
Рет қаралды 832
WHY IS A CAR MORE EXPENSIVE THAN A GIRL?
00:37
Levsob
Рет қаралды 18 МЛН
Sigma Girl Education #sigma #viral #comedy
00:16
CRAZY GREAPA
Рет қаралды 102 МЛН
WHY DOES SHE HAVE A REWARD? #youtubecreatorawards
00:41
Levsob
Рет қаралды 42 МЛН
New Gadgets! Bycycle 4.0 🚲 #shorts
00:14
BongBee Family
Рет қаралды 13 МЛН
Хэш-таблицы за 10 минут
13:01
Николай Тузов — Golang
Рет қаралды 120 М.
WHY IS A CAR MORE EXPENSIVE THAN A GIRL?
00:37
Levsob
Рет қаралды 18 МЛН