31 Множества в Python. Тип данных set
🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/course/63085/promo
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7caBlNDM6
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_egoroff
egoroffartem.pythonanywhere.co...
Множество (set) - неупорядоченная коллекция, хранящая набор уникальных значений и поддерживающая для них операции добавления (add , update), удаления (remove,discard,pop) и определения вхождения.
Как правило, для множеств поддерживаются операции, аналогичные операциям с математическими множествами: объединение, пересечение, симметричная разность множеств
egoroffartem.pythonanywhere.co...
На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
или в Вк
videos-177962775?secti...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы
Пікірлер: 148
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
Метод pop() не удаляет, а извлекает из множества элемент (с удалением в самом множестве). Т.е. можно написать some_element = some_set.pop() , и в переменную some_element будет записано значение, которое удалится из set. В то же время, его нельзя назвать "случайным", потому что не изменяя код, а просто перезапуская программу, значение всегда будет извлекаться/удаляться одно и то же. Но если множество изменить (добавить туда элементы или удалить), то внутренний порядок (основанный, я так понимаю, на хэш-функции) изменится, и тогда извлекаться будет уже, возможно, другой элемент. Автор, наверняка, это знает, просто не упомянул, а вдруг кому-то будет интересно.
Спасибо за видео! Если что то не понятно, всегда захожу на этот канал.
Дошел до 31 урока и заметил тенденцию, что чем дальше (глубже) в курс, тем меньше просмотров. И лайков в 10, 20 раз меньше, чем просмотров. Я думаю, что все видео, особенно в начале курса, нужно начинать со слов: "контент бесплатный, все кто проходит курс сразу ставим лайк, чтобы не забыть потом, это поможет развитию и продвижению канала". Это ведь не обычные развлекательные ролики. Здесь над пятнадцатиминутным видео можно весь день просидеть, а лайк забыть поставить! И еще, можно попробовать начало курса как-то зациклить на конец. 22000 просмотров в первом ролике и 160!!! в последнем. Например, записать в последнем ролике общее задание со всеми знаниями по проекту, и в первых роликах показывать куски из финального задания, типа как преподаватели говорят: "это будет на экзамене", "это пригодится вам вот здесь и т.д." и постоянно отсылать в конец. В последнем ролике по ссылке прилепить сертификат о прохождении курса. Кто прошел, тот может себе скачать. Мелочь, а если ты отмучал весь курс, то для тебя это значимо. Это мое мнение. Потому что курс отличный, и я желаю развития каналу.
@vladiusvostokus
4 жыл бұрын
просто многим просто надоедает изучать или они переходят на другой курс тут же ветераны
@user-iy6vk4pn1j
4 жыл бұрын
@@vladiusvostokus я бы на твоем месте учил другой язык
@artem2657
4 жыл бұрын
Дело в том что к концу остаются единицы !! Поэтому просмотров и мало ! По статистике 80% людей отсеиваются кто хочет попробовать программирование. И только 20% становятся программистами !
@maxsmith3193
3 жыл бұрын
Ответ прост - автор закрыл бесплатный доступ ко многим роликам, вот поэтому многие и побросали. Полно бесплатного контента
@Jyrgalovv
3 жыл бұрын
@@maxsmith3193 ну не через каждый же урок, до данного курса это было только 2 раза. Автору тоже хочется кущацц. Респект тебе автор, очень понятно и информативно
Спасибо за такие курсы, действительно очень понятно и доходчиво. Желаю только дольнейшего развития канала
Как пандемия закончится, сразу присоединюсь к спонсорам ! Такой канал должен максимально развиваться!!!
Спасибо большое за курс! Очень доходчиво и интересно!
Спасибо за такие подробные и логичные уроки!
Спасибо за очень понятное объяснение в каждом видео!
Спасибо за уроки)!
@egoroffchannel
5 жыл бұрын
не за что)
Спасибо за понятные и детальные объяснения!
Спасибо большое вы мне очень помогайте изучать программирование "Python" еще снимайте.
Спасибо! Крутые уроки! Развёрнуто, много примеров. Благодарочка).
Полезно же. Читал Тони Гэддиса, вроде издание 2018 года, а про оператор "&" ничего сказано не было, только про "intersection". Спасибо за уроки. Приятно узнавать что-то новое.
Спасибо за отличный урок! Все четко и понятно.
Тёма, все очень круто.Как всегда! Спасибо тебе!
Артем, Вы великолепный преподаватель-практик! Спасибо за видео!
Спасибо за отличные уроки!!!!
Спасибо тебе, добрый человек!
Спасибо за урок!Лучший.
Спасибо за курс!)
Respect! Огромное спасибо за Ваш труд!!!
Огромное спасибо! Очень подробное видео для начинающих!
Ооочень подробный гайд, огромное спасибо
Благодарю за уроки.
Артём, благодарю! 🔥🔥🔥 👍🤝
Спасибо за видеоролик в книге както не очень написано а здесь самое то. Так я и нашел этот канал. Кстати лайк и подписка.
Очень быстро и доходчиво!!!!
все очень понятно, лайк сразу же
Замечательное видео!
Спасибо тебе большое.👍
Четко обьясняешь, лайк
Спасибо за видео, очень хорошая подача материала. Единственные нюанс, не всегда правильно будет работать программа, по исключению дублей из списка через множество. Например, list_ =[1, True, 2] преобразуется в множество {1, 2}. Потому что 1==True. Но 1 is True будет False. Только решала эту задачу))
Артём, лучший препод!!!!
спасибо! лучший!
Спасиба Артем Бог поможеть тебе
Шик, блеск!)😁
Ставьте больше лайков парню!!!
Смотрю курс впервые и жду когда же я сдамся)) Многие уроки даются не с 1-го раза, но я стараюсь и это благодаря Вам! Спасибо!
@Chel1k7
Жыл бұрын
ну как спустя год успехи? сдался или всё таки получилось освоить профессию?
@artem_garyanov
Жыл бұрын
@@Chel1k7 не сдался, но как выяснилось, на работу просто со знанием 1 языка не устроиться, нужны знания фреймворков и пр. Мне это все даётся не легко и в процессе обучения я понял, что не хотел бы работать программистом. Но тем не менее, python изучил, прошел курсы повышения квалификации в МФТИ(ради бумажки, вся инфа есть на Ютубе). На работе уже написал 10 скриптов для коллег и 3 скрипта для друзей. Быстро пробежался по JavaScript (многое было понятно после питона) и сейчас изучаю фреймворк Vue. Скорее всего дальше хобби это не пойдет, но хочется научиться писать малые и средне нагруженные веб приложения. Собственно к этому и иду.
@Chel1k7
Жыл бұрын
@@artem_garyanov на курсах типо яндекс практикума или скил бокса не пробовали учиться? вроде бы как раз всему нужному для работы учат(фреймворки и тд). и сколько вам лет если не секрет?)
@artem_garyanov
Жыл бұрын
@@Chel1k7 Мне 34 и коллега с работы купил себе курс от Яндекс практикума python разработчик за 100 с чем то тысяч. Отучился он вроде 2 месяца, а до этого вообще не имел понятия о том, что такое программирование. Так вот за этот период в него впихнули информацию, которую я изучал не торопясь чуть больше полугода. Конечно же он ничего не понял и попросил вернуть деньги, благо у Яндекса есть такая возможность до какого то периода вернуть часть денег пропорционально пройденному материалу. Нужно отметить, что пытался он обучаться после того, как все легли спать т.к. домашние обязанности с него никто не снимал) да и детям тоже нужно было уделять внимание. Курсы не куплю т.к. я не готов отдать столько денег за хобби. Пока на Ютубе было возможно, я оформил подписку и был спонсором этого канала. А Вы на каком этапе? Уже кодите?
@Chel1k7
Жыл бұрын
@@artem_garyanov ну мне 24, я во время учебы в колледже обучался на языке с#, но учился мягко говоря так себе, и вот спустя 4 года понял что зря я не посветил себя айти) Сейчас хочу полностью погрузиться в это, и так как я забыл даже то что знал в с#, я решил с пайтона начать заново. Так как мне не впервой сталкиваться с программированием и сейчас с возрастом пришло и желание(а это наверное самое главное, хотеть изучать сферу эту) у меня всё идет на ура, да есть конечно сложные уроки которые приходится смотреть по несколько раз, чтобы понять, но применяя на практике(в том же курсе автора на степике ) становится всё более понятно. Изучать начал месяц назад, изучаю базу , ядро языка так сказать, и планирую купить курсы как раз от яндекса То есть сейчас можно сказать заранее готовлюсь чтобы не поплыть на платном обучении
Спасибо большое
Не ну тут лайк! Спс бро
thank you!
отлично!
Thank you!
Спасибо
В методе update итерируются и словари с кортежом. ПРОВЕРЕНО!)
Создай телеграмм канал для обсуждения вопросов по Пайтону и для общения всех,кто проходит курс! Я первый подпишусь)
@alenasakuta7434
4 жыл бұрын
Ты можешь сделать это сам. И оставить ссылку)
лучшего объяснения как работают множества просто не найти 😃
Когда ошибки справа были удобно с телефона смотреть увеличивать
крутые уроки
Пагграмма: s = input() print('YES' if len(set(s.lower())) == 26 else 'NO')
Я не смотрел предыдущего видео, но до этого смотрел на Ютубе видео по комбинаторике и решил задание про треугольник Паскаля: import math as mt n0 = int(input()) m0 = int(input()) for n in range(1, n0+1): for m in range(1, m0+1): print(mt.comb(n+m-2, m-1), end = ' ') print()
@lukandrate9866
3 жыл бұрын
Вот для удобного просмотра при больших значениях: import math as mt a = int(input()) b = int(input()) for n in range(1, a+1): for m in range(1, b+1): print(mt.comb(n+m-2, m-1), ' '*(len(str(mt.comb(a+b, b)))-len(str(mt.comb(n+m-2, m-1)))), end = '') print()
классно
А что делать, если множество состоит из квадратов (pygame.Rect)? Просто когда я пытаюсь их удалить, мне выдаёт ошибку, причём если я беру другое множество но с числами или строками, у меня получается.
В множество кроме чисел, строки и кортежа еще можно использовать тип None и булев тип! например: a = { 8.0j, 'text', True, False,None, (18,19,15)}
Спасибо за такой хороший урок Были бы задания было бы намного лучше
👏👍
Не пойму.. Переменной d мы присвоили значение списка которое преобразовали в множество функцией set. В переменной q мы сделали тоже самое но там был список вложенный в список. Автор говорит что в типо множество не может состоять из изменяемых объектов каковыми и являются списки, но как же тогда быть с переменной d, которая вывела значение списка преобразованное во множество?
Не понял в чем разница создания из списка и вложенного списка - список же тоже изменяемый тип (как вложенный список) но из него получилось создать..
А что делать если не работает энтер, и я не могу в окне run перейти на пустю строку??? к
Везде написано что множество это коллекция элементов в СЛУЧАЙНОМ порядке, но у меня они все ид{'l', 'e', 'o', 'h'}ут по порядку, пишу а = set('hello') print(a) выводит {{'l', 'e', 'o', 'h'} пересоздавал, все так же, выводил повторно, порядок сохранялся. Так же использовал метод pop(), и всегда значения одни и те же. создавая множество через range(), так же все по порядки((( Подскажите, пожалуйста как это исправить. Заранее благодарю за помощь.
Прикольно
04:37 "Итак мы с вам рассмотрели все варианты создания СПИСКА"? (или множества?)
Артем отличное видео,отлично объясняешь,но пожалуйста можно помедленее,я не успеваю понять так быстро
@egoroffchannel
2 жыл бұрын
Хо роооо шооо
Комментарии для поддержки канала 🖐️☺️
Здравствуйте, у вас нет урока по поиску палиндромов в любом словаре?
@user-ow6vs5yl7e
2 жыл бұрын
т.е. когда словарь идет отдельным документом?
Я не понял, если нельзя во время множества работать со списками, почему тогда, когда мы сплитом создаём списки, все отлично работает?
@erdenitsyrendorzhiev9308
4 жыл бұрын
Элементом множества не может быть изменяемый объект, а работать со списком из неизменяемых он может, также например ключом словаря не может быть изменяемый объект
Як визначити загальну суму чисел множини?
как tuple изменить в set?
2:05 подумал, что он пишет название моего канала
А как например узнать количество не уникальных слов, а уникальных знаков именно. Что бы , к примеру, при вводе fg ty wfg wt atr программа выводила 7 ( f q t y a r w)
@egoroffchannel
3 жыл бұрын
Строку преобразовать в множество
Странно, что при использовании функции print(d) не выводит ошибку: unhashable type, ведь список является изменяемым объектом, так же как и вложенные списки.
@egoroffchannel
4 жыл бұрын
а почему должна быть такая ошибка?
Почему вложенный список нельзя понятно, но почему обычный тогда можно? Это же тоже изменяемый объект
@user-pt4zr7lr3u
4 жыл бұрын
Ну смотри, ты ж добавляешь ИЗ списка, то есть если в списке например числа, то программа их добавит, а если в списке списки, то не поймёт что делать (я сам ток учусь, по этому могу быть не прав)
@MrKoTera
3 жыл бұрын
@@user-pt4zr7lr3u Множество это разделенные элементы (в данном случае из списка). И разумеется, если списков >1, то из какого списка set должен составиться? Неизвестно, потому это так не работает.
@MrKoTera
3 жыл бұрын
@@user-pt4zr7lr3u Потому что большее кол-во списков составят уже таблицу(матрицу), в которой чтобы взять что-то - нужно два индекса. (индекс списка и индекса элемента выбранного списка), тем временем, как set берёт только из одного списка с одним индексом. Сложно объяснил, сам только учусь, так что не судите строго(
Ogo kaif
да только теперь множество сохраняет свой порядок начиная с версии языка 3.7
Помогите разобраться Указанный метод должен быть в функции: наша функция должна принимать два списка городов, а выводить на печать те города, которые ещё можно использовать :) Не понимаю. как использовать Используйте метод difference() yadi.sk/i/I7UapOjNu1SuGg
Решение задач по данному видеоматериалу: Девушка или Юноша: n=input() if len(set(n))%2==0:print('CHAT WITH HER!') else: print('IGNORE HIM!') Не смешите мои подковы: n=[int(i) for i in input().split()] print(len(n)-len(set(n))) Почти счастливое число: n=[int(i) for i in input()] s=0 for i in n: if i==4 or i ==7: s=s+1 if s==4 or s==7: print('YES') else: print('NO') Красивый год: n=int(input()) while True: n=n+1 if len(set(str(n)))==4: print(n); break A. I Wanna Be the Guy: n=int(input()) a=[] for i in range(2): x=[int(i) for i in input().split()][1:] a=a+x if len(set(a))==n: print('I become the guy.') else: print('Oh, my keyboard!') Антон и буквы: n=set(input()) s=0 for i in n: if i.isdigit() or i.isalpha(): s=s+1 print(s) Счастливое деление: n=int(input()) a=[] i=1 oth={1,2,3,5,6,8,9,0} s=0 while i**20:print('YES') else: print('NO') Панграмма: n=int(input()) m=input().lower() if len(set(m))==26: print('YES') else: print('NO')
Здравствуйте, кто-нибудь может подсказать, как решать задачу Beautiful Year?
@COMBINATORS
4 жыл бұрын
Красивый год Вы имеете в виду? Если да, то я решил так: a=input() b=int(a)+1 while len(a)-len(set(str(b)))!=0: b+=1 print(b)
@user-un6bi5hq5d
4 жыл бұрын
@@COMBINATORS Спасибо
@user-ss2ws6zc7x
4 жыл бұрын
@@COMBINATORS, подскажите, вам удалось решить задачу codeforces.com/problemset/problem/469/A?
@COMBINATORS
4 жыл бұрын
@@user-ss2ws6zc7x 5. I Wanna Be the Guy: n=int(input()) a=set(input().split()[1:]) b=set(input().split()[1:]) if len(set.union(a,b)) == n: print('I become the guy.') else: print('Oh, my keyboard!')
@user-ss2ws6zc7x
4 жыл бұрын
@@COMBINATORS, спасибо! Я решил следующим образом: n = int(input()) level_x = set(list(map(int, input().split()))) level_y = set(list(map(int, input().split()))) sm = level_x | level_y if n in sm: print('I become the guy.') else: print('Oh, my keyboard!') Но у меня были сомнения насчет его корректности. Как вообще можно проверить корректность кода? Я думал, что на сайте codeforces.com/ можно, но не нашел такой возможности.
Если кто знает телеграм канал обсуждение обучающихся пайтону, киньте тут ссылку
Ребят кто решал пятую задачу "I wanna be the guy" я не могу понять почему при сдаче на проверку , мой код не проходит после 2-го теста. Хотя я тестировал сам и как бы все ок. Подскажите в чем проблема ? n = int(input()) #Всего уроней p = input().split() #Уровни Little X q = input().split() #Уровни Little Y x = set() y = set() x.update(p) y.update(q) x = x.union(y) if len(x) == n: print('I become the guy.') else: print('Oh , my keyboard!')
@egoroffchannel
4 жыл бұрын
Вывод участника Oh , my keyboard! Ответ жюри Oh, my keyboard! ты указал лишний пробел
Дай скриншот программы в прошлом видео, я её писал, а тут БАЦ: Ограниченный доступ
@0mikronus
4 жыл бұрын
не зная что там за программа но вот одно из решений по выводу N строчек треугольника паскаля def pascal_triangle(n): row = [1] y = [0] for a in range(max(n, 0)): print(row) row = [l + r for l, r in zip(row + y, y + row)] pascal_triangle()
спасибо . но жаль много роликов за платную подписку. понимаю столько стараний и ноль прибы ли
на данном этапе пока не понятно а зачем они вообще нужны, эти множества)
Для чего нужна # ?
@egoroffchannel
4 жыл бұрын
Комментарий в коде
@kaltsdaniil8378
4 жыл бұрын
@@egoroffchannel спасибо огромное! Ваш канал лучший🙏
pop() удаляет первое значение
Смотрел когда был малый, думал тип тупой и несет херню, а сейчас понял что я был тупый
Девушка или юноша: s = set(list(input())) print('CHAT WITH HER!' if len(s) % 2 ==0 else 'IGNORE HIM!')
Светлая тема ;_; за что??
5. задача "I wanna be the guy" @egoroff_channel n = int(input()) p = set(map(int, input().split())) q = set(map(int, input().split())) p=p.union(q) while 0 in p: p.discard(0) if n==len(p): print('I become the guy.') else: print('Oh, my keyboard!') выдает ошибку на 27 тесте Ввод 3 1 2 2 2 3 Вывод I become the guy. Ответ Oh, my keyboard! Протокол тестирования wrong answer 1st lines differ - expected: 'Oh, my keyboard!', found: 'I become the guy.'
@egoroffchannel
4 жыл бұрын
не помню, что там за условие, но вполне себе может быть такое,что ошибка в тестах
@alex_pure
Жыл бұрын
Первое число во второй и третьей строках не должны входить в множество
Девушка или Юноша: n = input() if len(set(n))%2 == 0: print('CHAT WITH HER!') else: print('IGNORE HIM!')
@alex_pure
Жыл бұрын
Не смешите мои подковы: s1, s2, s3, s4 = map(int, input().split()) print(4 - len(set([s1, s2, s3, s4]))) или так: print(4 - len(set(map(int, input().split()))))
@alex_pure
Жыл бұрын
Почти счастливое число: n = list(map(int, input())) if set(map(int, str(n.count(4) + n.count(7)))) - {4, 7} == set(): print('YES') else: print('NO')
@alex_pure
Жыл бұрын
Красивый год: y = int(input()) ny = y + 1 while len(set(str(ny))) if len(set(str(ny))) != 4: ny += 1 print(ny)
@alex_pure
Жыл бұрын
I Wanna Be the Guy: n = int(input()) p = list(map(int, input().split())) q = list(map(int, input().split())) if len(set(p[1:]).union(set(q[1:]))) == n: print('I become the guy.') else: print('Oh, my keyboard!')
@alex_pure
Жыл бұрын
Антон и буквы: s = input() s1 = [] for c in s: if c.isalpha(): s1.append(c) print(len(set(s1)))
Не понятно, что множество тупо все выводит по одному числу, зачем??? Автор вы объясните зачем это " set" нужно? Есть проще варианты решения задачи.