Уроки Python с нуля / #11 - Множества (set и frozenset)

  Рет қаралды 177,142

Школа itProger / Программирование

Школа itProger / Программирование

Күн бұрын

Пікірлер: 121
@Lola_Braun
@Lola_Braun 11 ай бұрын
Половину прошла, осталось столько же. Только сложность повыше ) Большое спасибо за возможность учиться. Рада, что нашла вас на ютубе
@olegkomlev
@olegkomlev 2 жыл бұрын
Если мы хотим создать пустое множество, а потом добавлять в него значения (например, с клавиатуры или из файла или путем вычисления), то такой путь будет ошибкой: a={ } # это не пустое множество! a.add(5) Выдает ошибку "AttributeError: 'dict' object has no attribute 'add' Потому что a={ } не создает пустое множество, а создает пустой словарь. Пустое множество создается при помощи set() a=set() # пустое множество a.add(5) # добавим в множество элемент
@techroniin4429
@techroniin4429 Жыл бұрын
Интересно, спасибо
@B_T-j2w
@B_T-j2w 9 ай бұрын
ааа так вот зачем set
@onlyql
@onlyql 6 ай бұрын
Спасибо, друг)
@Andy564
@Andy564 2 ай бұрын
когда с комента понял больше чем с видео
@Someone_Game999
@Someone_Game999 Жыл бұрын
Огромная вам благодарность! Серьёзно, такие курсы, как это видео, стоят бешеные деньги. Огромное спасибо за ваш труд!
@wellstuff368
@wellstuff368 10 ай бұрын
пишете полную чушь)) это не видео по какой-то технологии типо Селери, а базовые понятия о базовых типах данных. в курсах за "бешенные деньги" не дают ничего того, чего нет в открытом доступе. этим сообщением не приуменьшаю заслуг автора
@БерікЕкуза
@БерікЕкуза 5 ай бұрын
@@wellstuff368вы наоборот увеличили заслугу автора, если сами заново перечитаете😅 а так за бешеные деньги и учать основу… оффлайн.
@Roma.x
@Roma.x Ай бұрын
Я начинающий, смотрю это уже вторую неделю очень помогает, спасибо огромное! ТАК ДЕРЖАТЬ!
@TheTykVa
@TheTykVa 2 жыл бұрын
Для чего нужен метод pop(), удаляющий первый элемент во множестве, если в нем априори нет первого элемента. По сути он удаляет рандомный элемент.
@VitaliyZlobin
@VitaliyZlobin Жыл бұрын
Гоша оговорился, множество не первый элемент удаляет, а рандомный, при этом он этот элемент ещё и возвращает. Допустим нужно перебрать множество: в цикле получаем очередной элемент в переменную с помощью метода pop(), при этом удаляем его из множества, затем с этой переменной проделываем какую-то работу(пишем в базу, например) и переходим к следующему элементу множества.
@DiasAmanzhol-fq5kb
@DiasAmanzhol-fq5kb 10 ай бұрын
Тогда, можно использовать remove()
@wellstuff368
@wellstuff368 10 ай бұрын
@@DiasAmanzhol-fq5kb для ремува нужно знать значение, тогда как попа этого не требует
@MalkiaMmoja
@MalkiaMmoja 2 жыл бұрын
Благодарю за урок! Правда, я пока не представляю, как эти множества применять на практике, но надеюсь, что со временем разберёмся.
@yoyozhik
@yoyozhik 2 жыл бұрын
поясняю: скорее всего будет удобно, если, например нам понадобится сайт, типо спортмастера, где надо будет спросить у человека, каким видом спорта он увлекается. И он, допустим, несколько раз напишет "футбол" и чтобы сильно не нагружать алгоритм, он просто отсеивает повторяющиеся элементы
@БтгВвд
@БтгВвд 2 жыл бұрын
@@yoyozhik спасибо, так даже можно в некотором роде экономить память на сервере сайта.
@wellstuff368
@wellstuff368 10 ай бұрын
​@@yoyozhik существует валидация данных пост запроса которая решает эту проблему, плюс на практике юзеру предпочтительнее разрешать выбирать из существующих видов спорта дабы он не сохранял слово писюн в ваш фрозенсет))
@qazmko212
@qazmko212 Жыл бұрын
Спасибо вам большое, благодаря вам я закрыла сессию на 5 и начала хоть что-то понимать в этом языке программирования 💖
@ultrarin7629
@ultrarin7629 3 ай бұрын
Закрыла сессию, но при этом Тимур?
@deathgun1642
@deathgun1642 Жыл бұрын
Спасибо вам, благодаря вам начал понимать этот язык программирования!
@dmitry.masalskiy
@dmitry.masalskiy Жыл бұрын
Спасибо за Ваш труд, уважаемый автор! Очередной урок пройден.
@Lari2025
@Lari2025 3 ай бұрын
3:18 Грамотей! В случае если элементы в множестве типа int или float они ВСЕГДА выводятся в порядке возрастания!
@ИгорьКроха-м2ж
@ИгорьКроха-м2ж Ай бұрын
Не всегда. Сорри бро, но ты ошибся. Проверь пожалуйста! data = {3, 4, 6, 13, 2233, 9} print(data) Результат будет таким: {3, 4, 2233, 6, 9, 13}
@turkpenbai6117
@turkpenbai6117 6 сағат бұрын
​@@ИгорьКроха-м2ж результат = {3, 4, 6, 9, 13, 2233}
@Burovasofia
@Burovasofia Жыл бұрын
спасибо за урок. шаг за шагом смотрю все уроки.
@Enorxes
@Enorxes Жыл бұрын
Спасибо за видео урок!
@SRUL0
@SRUL0 2 ай бұрын
Ты гениальный лектор.
@NuHashik
@NuHashik Жыл бұрын
В с случайном порядке идут только строки, а цифры в порядке возрастания, а также не уточнил, что команда add добавляет в начало множества.
@Михалыч-ы5ь
@Михалыч-ы5ь 11 ай бұрын
не всегда в порядке возрастания
@ИгорьКроха-м2ж
@ИгорьКроха-м2ж Ай бұрын
потестил. Нифига не всегда добавляет в начало.
@alexey124
@alexey124 2 жыл бұрын
интересный момент, что все таки множество нельзя использовать для "перемешки", у меня оно наоборот упорядочило числа: i = 4 data = {3, 2, 1,"seeet"} while i < 22: data.update([i]) i += 1 print (data) Всегда выводит в строгом порядке от 1 до 21, только строка "seeet" скачет-туда сюда, а 3, 2, 1 (так же как и 2, 3, 1) он переворачивает в 1, 2, 3 Я Python знаю только из видео автора, хотелось бы комментарий от него на этот счет, чтобы уже закрыть этот не укладывающийся в представление о множестве вопрос.
@dim4ik742
@dim4ik742 2 жыл бұрын
Согласен
@_alexandr_sk
@_alexandr_sk Жыл бұрын
Начиная с python 3.7 словари стали упорядоченными
@azizbekmurodov2450
@azizbekmurodov2450 Жыл бұрын
Может быть дело в том что вы создали цикл и поставили туда множества а цикл всегда начинает с меньшего и идёт до большего поэтому хотя вы поставили множества она входит в цикл и принимает вид цикла
@stylebender1905
@stylebender1905 Жыл бұрын
@@azizbekmurodov2450 wtf duuude?
@ИльяРепин-ж2щ
@ИльяРепин-ж2щ 10 ай бұрын
спасибо вам за уроки) захотелось начать программировать
@daniilchuprin
@daniilchuprin Жыл бұрын
Благодарю, очень толково разсказано
@alekssaf3926
@alekssaf3926 2 ай бұрын
Python ещё и обзывается. Ему написали “Hello”, он ответил “l.o.h.e” 🤣
@sanjimederbekov7630
@sanjimederbekov7630 6 ай бұрын
Благодарю, залпом пересмотрел вам курс теперь пересматриваю, чтобы практиковаться. Сам записался на оффлайн курс у себя в городе и сегодня собираюсь сдать тест, чтобы сразу перейти на 2-й месяц, так как весь первый месяц обуения по их программе я уже здесь узнал)) Но в этом видео появился вопрос: 7:04 - я заметил, что числа не перемешиваются, а наоборот статично стоят отсортированные от меньшего)) Как их "зашаффлить"? )
@AnderPython-tw3kp
@AnderPython-tw3kp Жыл бұрын
Что-то мне подсказывается, что множество наоборот сортирует список или кортеж. А вот именно символы строки располагает хаотично)
@lievsey
@lievsey Жыл бұрын
Попробуй несколько раз выполнить программу - будет произвольный порядок
@ИгорьКроха-м2ж
@ИгорьКроха-м2ж Ай бұрын
@@lievsey нет не будет. Если будешь 1 и тот же список тусовать, ничего не изменится
@CreeperWithDynamite
@CreeperWithDynamite 4 ай бұрын
Круто что они существуют, а зачем они нужны? где их можно использовать?
@овсехдвижках
@овсехдвижках Жыл бұрын
Спасибо за труд!
@winaredwindows6704
@winaredwindows6704 2 ай бұрын
вместо update можно написать "|" set3 = set1 | set2 если хоти создать множество объединяя эти элемент или же если хотим изменить текущее множество то set1 |= set2 также эти функции заменяются этими симловами кому слова сложно запомнить - & | ^ . discard удоляет элемента без выдование ошибки заменяя remove. знак & выводит общие элементы знак - удоляет из текушего множества элементы такиеже элементы что и вдругом множестве ну пробуйте сами дальше
@Calmasastone
@Calmasastone Жыл бұрын
Спасибо за видео!
@anderpython
@anderpython Жыл бұрын
Почему в хаотичном, если при выполнении программы определенная сортировка все-таки есть??!! Например: True всегда встаёт между 0 и 2, а например 'str' располагается в конце множества..!!!
@apav7
@apav7 Жыл бұрын
Если вводить только цифровые значение, то они не в случайном порядке, а в порядке возрастания. Так что они у Вас не "случайно" так встали
@Михалыч-ы5ь
@Михалыч-ы5ь 11 ай бұрын
не всегда в порядке возрастания
@firo9715
@firo9715 7 ай бұрын
Множество не гарантирует сортировку цифровых значений в порядке возрастания. Можешь проверить это, добавив в множество какие-либо новые значение, например: 55555. Я сам не особо понял как там всё это устроено, но кажется это как-то связано с хэш-функцией.
@ДмитрийКириллов-ю4ъ
@ДмитрийКириллов-ю4ъ Жыл бұрын
data = {3,4,6,13,2233,9} print(data) Почитав комментарии понял, что все должно вставать по возрастанию, но почему 2233 встает вообще по середине?..
@Михалыч-ы5ь
@Михалыч-ы5ь 11 ай бұрын
вроде как порядок случайный,автор так говорит
@quentindrenton
@quentindrenton Жыл бұрын
Я буду тут каждый день. День 7.2
@ЭмирМалахитович
@ЭмирМалахитович 2 жыл бұрын
Top
@МаксимБахтєєв-р9й
@МаксимБахтєєв-р9й 6 ай бұрын
спасибо
@kedoni9123
@kedoni9123 6 ай бұрын
3:14 он всегда в порядке возрастания
@Redicko
@Redicko 5 ай бұрын
В новой версии питона, скорее всего, поменяли это
@ivanwscb
@ivanwscb Ай бұрын
2024 год, 36 лет, учим программирование на Python...
@mairambekduisheev969
@mairambekduisheev969 2 жыл бұрын
как сделать так что бы оно работало через инпут
@SenchosFSB
@SenchosFSB 11 ай бұрын
как вы комментируете весь код сразу или какую-то его часть?
@NBB-bz8vd
@NBB-bz8vd Жыл бұрын
а в каком уроке мы до этого изучали сплит ?
@logan_Makegames
@logan_Makegames 10 ай бұрын
eblan
@Gill_only
@Gill_only 9 ай бұрын
Про списки урок
@addmagtech
@addmagtech 8 ай бұрын
напрягииииисссь...
@Westphaliapeace
@Westphaliapeace Жыл бұрын
Для чего нужно это допустим в рабочем дне программиста нужно курс писать по конкретным примерам а то слышишь, только множество списки и тд и тп зачем все это и где исполизовать
@adiletasangalukov8556
@adiletasangalukov8556 3 жыл бұрын
Вау
@Docere21
@Docere21 Жыл бұрын
почему-то когда по урокам пишу всё в pycharm то все хорошо но мне как-то удобней работать в microsoft code, но проблема в том что пишу все так же но там уже идут какие-то ошибки не могу разобраться почему так происходит!?
@ЛюдмилаВасильева-т8р
@ЛюдмилаВасильева-т8р 17 күн бұрын
1:58 : l, o, h - пххахааххахаха😂
@AndrosovArtem
@AndrosovArtem 2 жыл бұрын
я один не понимаю? почему множества не рандомят числа до 10?
@Pulsatil1
@Pulsatil1 2 жыл бұрын
Та же история. И в видеоуроке числа до 10 не рандомились, а выводились в порядке возрастания. Хотелось бы услышать ответ от автора.
@EvgenijJobs
@EvgenijJobs 2 жыл бұрын
Ну, это не совсем так. Все зависит от порядка добавления элементов в множество. Попробуйте, например, {9, 2, 1} и {1, 2, 9}. У меня вывод print({9, 2, 1}) И print({1, 2, 9}) разный. Объясняется все тем, как устроены хэш-таблицы и функция hash().
@EvgenijJobs
@EvgenijJobs 2 жыл бұрын
Гораздо интереснее (для непосвященных) почему {1, True} == {1} =)
@gddotop2231
@gddotop2231 2 жыл бұрын
@@EvgenijJobs True является 1, а False 0
@olegkomlev
@olegkomlev 2 жыл бұрын
Множества не предназначены для перемешивания чисел. "Случайный порядок во множестве" надо понимать "во множестве не хранится информация о порядке элементов, поэтому порядок в котором элементы печатаются или перебираются в цикле for не определен". Т.е. они могут выводится в порядке возрастания, в порядке убывания, в каком-то смешанном порядке и т.д. - это на усмотрение самого Питона. Гарантируется лишь ,что один оператор print или один оператор for обработает в каком-то порядке все элементы множества без повторений. А уж как порядок меняется или не меняется при добавлении или удалении элементов - это как удобно самому интерпретатору. Может быть даже и так , что мы ничего с множеством не делаем , а print каждый раз выводит в разном порядке (мало ли, может сборщик мусора что-то там оптимизирует в этом множестве, чтобы его легче обрабатывать).
@ОльгаРязанова-м3о
@ОльгаРязанова-м3о 11 ай бұрын
с каждым видео просмотров все меньше и меньше)
@Derek_3
@Derek_3 10 ай бұрын
Во множестве элементы сортируются по возрастанию если это числа а с помощью pop() удаляет первый элемент
@ИгорьКроха-м2ж
@ИгорьКроха-м2ж Ай бұрын
нифига не первый удаляется Запусти data = {1, 9, 3, 4, 5, 6, 7, 32} data.pop() print(data) Результатом будет {1, 3, 4, 5, 6, 7, 9} 32 это первый элемент?
@Евгений-л1е9ь
@Евгений-л1е9ь 2 жыл бұрын
клыр
@MalkiaMmoja
@MalkiaMmoja 2 жыл бұрын
лыст
@zadrod3780
@zadrod3780 7 ай бұрын
Просмотрел половину уроков все прекрасно понятно но забывается,придется устранять эту проблему
@techroniin4429
@techroniin4429 Жыл бұрын
В множестве можно удалить элемент и добавить но нельзя заменить элемент. На первый взгляд выглядит бессмысленно. Но интересно почему так.
@ПродуктНатуральный
@ПродуктНатуральный 2 жыл бұрын
Подскажите, почему в данном примере не отображает True? date = {5, 7, 9, 1, 6, 4, 6} date.update(['stroka', True, 4.5, 3]) print(date)
@ДмитрийПарамонов-д8з
@ДмитрийПарамонов-д8з 2 жыл бұрын
тоже стало интересно, убрал из первого множества цифру один - и True появилось. возможно, это связано с превращением булевого типа в числовой, но конкретный механизм почему так происходит - не знаю
@takomy9033
@takomy9033 2 жыл бұрын
True - это та же самая 1(False-0). А так как множества не отображают повторяющиеся элементы, то высвечивается только 1.
@ВладиславСаенко-ы5э
@ВладиславСаенко-ы5э 2 жыл бұрын
​@@takomy9033False - это тот же 0(True - 1). А так как множества не отображают повторяющиеся элементы, то высвечивается только False ????????????????????.
@Fabio_Fantome
@Fabio_Fantome 2 жыл бұрын
ничё не измениться если прописать: data.add(bool(True)) И с таким же успехом будет результаты если обратить его в int(), да даже в float (). Скорее всего множества не воспринимают bool как отдельный тип данных, только визуально добавляют, его просто "присваивают к стаду", а значение True = 1, напишешь False, всё добавится.
@olegkomlev
@olegkomlev 2 жыл бұрын
False и True - не то же самое, что 0 и 1, но отличаются только "внешним видом" (bool построен из int изменением символьного представления, поэтому print печатает их по-разному). А для проверки неповторяемости в множестве важно не внешнее представление, а значение (хотя внешний вид тоже сохраняется). Сравните print({True,1, 1.0}) #{True} print({1, True,1.0}) #{1} print({1.0, True,1}) #{1.0} И так же сравниваются ключи в словаре: d={True:'b', 1:'i', 1.0:'f'} print(d) # {True: 'f' } print(d[1]) # f print(d[1.0]) # f print(d[True]) # f
@назарвласенко-ы5х
@назарвласенко-ы5х Жыл бұрын
У меня True идёт как 1 а False не идёт ведь оно как 0
@yanavin2964
@yanavin2964 Жыл бұрын
person = { "user_1": { "name": "yan", "second_name": "avin", "country": {"RUSSIA"}, "hobbies": {"important": "lang", "others": "python"}, } } print(person["user_1"]["hobbies"]["others"]) print(person.keys("user_1")) ребят а если я хочу вывести ключи с первого пользователя как мне в принт персон кейс написать юзер один что бы он все вывел? я в посл строчке написал но питон пишет что я ошибся
@thankyou9818
@thankyou9818 Жыл бұрын
Привет. Если вопрос ещё актуален отвечу. Если ты хочешь вывести только ключи юзер_1, тогда пиши: print(person['user_1'].keys())
@yanavin2964
@yanavin2964 Жыл бұрын
@@thankyou9818 привет спасибо за ответ а можно ли вывести только все ключи от хобби например? print(person['user_1']['important'].keys()) так будет? мне ошибку пишет
@thankyou9818
@thankyou9818 Жыл бұрын
@@yanavin2964 нет. Если ты хочешь всё ключи от хобби, то тогда пишешь print(person['user_1']['hobbies'].keys()). А если ты пишешь там импотант.кейс то тогда тебе ошибку выведет, потому что импотант является сам кейсом.
@thankyou9818
@thankyou9818 Жыл бұрын
@@yanavin2964 если что-то не понял можешь задать вопрос
@alexeyantonenko877
@alexeyantonenko877 Жыл бұрын
Спасибо. А наоборот как сделать? Преобразовать множество в список
@Ghotierr
@Ghotierr Жыл бұрын
C помощью функции list(), например. Только порядок элементов списка будет "случайный".
@FastAbsolute
@FastAbsolute Жыл бұрын
Data = {2, 5, 4, 5, 1} print(Data) Run:{1, 2 , 4, 5} И так всегда при запуске. Это нормально?
@bobikbobanovich9997
@bobikbobanovich9997 Жыл бұрын
ну да
@diisspersion
@diisspersion Жыл бұрын
да
@samorodok9327
@samorodok9327 Жыл бұрын
data = set('35914') print (data) вот так перемешивает
@backend.developer2808
@backend.developer2808 Жыл бұрын
Это какая программа Python или PyCharm?
@ИльяНизарит
@ИльяНизарит Жыл бұрын
PyCharm
@SeraphimLUX
@SeraphimLUX Жыл бұрын
Это C#
@backend.developer2808
@backend.developer2808 Жыл бұрын
@@SeraphimLUXнето
@furrka1
@furrka1 5 ай бұрын
Гений
@backend.developer2808
@backend.developer2808 5 ай бұрын
​@@furrka1 смысле ?
@PornerIgor
@PornerIgor 3 жыл бұрын
хахахахха 2:06, LOHE -Лохи
@gddotop2231
@gddotop2231 2 жыл бұрын
У меня HOLE
@vaaaaavdelux
@vaaaaavdelux 3 ай бұрын
Не понимаю зачем нужно писать команды чтобы что либо добавить,ведь можно сделать это в ручную просто добавив в список новый элемент
@alekssaf3926
@alekssaf3926 2 ай бұрын
Во время выполнения программы вы не сможете ничего вручную добавить или удалить.
@mirkamolrakhimov4090
@mirkamolrakhimov4090 3 жыл бұрын
Youtbe Teacher
@SeraphimLUX
@SeraphimLUX Жыл бұрын
Автор в этом курсе поставил себе одну задачу - максимально быстро заспидранить на отьебись "курсы" по программированию...
@Gill_only
@Gill_only 9 ай бұрын
А что он плохо объясняет или что-то недоговаривает?
@abdu3951
@abdu3951 2 ай бұрын
А чего он не рассказал про методы множеств, про intersection, union, update и тд. Ставлю диз
@ПшквЪ
@ПшквЪ Жыл бұрын
По моему происходит не перемешивание значений. а сортировка!
@_alexandr_sk
@_alexandr_sk Жыл бұрын
Начиная с python 3.7 множества стали упорядоченными
@Red-sw5lm
@Red-sw5lm 8 ай бұрын
Кто знает почему всегда snumber 0 если в if изменяется на другое? import random import os attempt = 0 snumber = 0 print("Выберите уровень сложности") print("1. Легкий - Неограниченое число попыток от 0 до 100") print("2. Нормальный - 15 Попыток от 0 до 250") print("3. Сложный - 20 Попыток от 0 до 500") dif = input() if dif == 1: snumber = random.randrange(101) if dif == 2: snumber = random.randrange(251) if dif == 3: snumber = random.randrange(501) os.system("cls") while True: print(snumber) print("================") print("| Угадай число |") print("================") print("Попытки:",attempt) print("================") number = int(input()) os.system("cls") if number == snumber: print("===========================") print("| Поздравляем ты победил! |") print("===========================") break if number < snumber: print("Больше!") attempt = attempt + 1 if number > snumber: print("Меньше!") attempt = attempt + 1 input()
@turkpenbai6117
@turkpenbai6117 3 сағат бұрын
import random import os attempt = 0 snumber = 0 print("Выберите уровень сложности") print("1. Легкий - Неограниченое число попыток от 0 до 100") print("2. Нормальный - 15 Попыток от 0 до 250") print("3. Сложный - 20 Попыток от 0 до 500") dif = input() if dif == "1": snumber = random.randint(0, 100) attempts_allowed = float('inf') # unlimited attempts elif dif == "2": snumber = random.randint(0, 250) attempts_allowed = 15 elif dif == "3": snumber = random.randint(0, 500) attempts_allowed = 20 else: print("Неверный выбор!") exit() os.system("cls") while attempt < attempts_allowed: print("================") print("| Угадай число |") print("================") print("Попытки:", attempt) print("================") number = int(input()) os.system("cls") if number == snumber: print("===========================") print("| Поздравляем, ты победил! |") print("===========================") break elif number < snumber: print("Больше!") else: print("Меньше!") attempt += 1 if attempt >= attempts_allowed: print("Попытки исчерпаны. Загаданное число было:", snumber)
Уроки Python с нуля / #12 - Функции (def, lambda)
22:21
Школа itProger / Программирование
Рет қаралды 229 М.
Inside Out 2: BABY JOY VS SHIN SONIC 3
00:19
AnythingAlexia
Рет қаралды 6 МЛН
отомстил?
00:56
История одного вокалиста
Рет қаралды 7 МЛН
Лучшая Методика Изучения Программирования
11:14
Сергей Дмитриевский. Программирование
Рет қаралды 1,3 М.
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 22 М.
Python lists, sets, and tuples explained 🍍
15:06
Bro Code
Рет қаралды 275 М.
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 165 М.
31 Множества в Python. Тип данных set
18:15
egoroff_channel
Рет қаралды 121 М.
😱 Как стать программистом с нуля? Без курсов самому.
24:43
Хауди Хо™ - Просто о мире IT!
Рет қаралды 418 М.
Уроки Python с нуля / #10 - Словари (dict) и работа с ними
16:10
Школа itProger / Программирование
Рет қаралды 236 М.
Inside Out 2: BABY JOY VS SHIN SONIC 3
00:19
AnythingAlexia
Рет қаралды 6 МЛН