Python для начинающих. Урок 9: Словари (dict). Решение задач.

  Рет қаралды 84,173

alishev

alishev

4 жыл бұрын

ВСЕ ВИДЕО ПО PYTHON: • Python для начинающих
МОЙ КУРС ПО GIT: www.udemy.com/course/git-alis...
ДЛЯ ЖИТЕЛЕЙ РФ: swiftbook.org/courses/586
Реклама и сотрудничество: alishev.neil@gmail.com

Пікірлер: 284
@alishevN
@alishevN 4 жыл бұрын
1) Плейлист этого курса вот здесь: kzfaq.info/sun/PLAma_mKffTOSY12JZS6l8lxKCpooPVcrn 2) Не обязательно использовать Jupyter Notebook. Можно использовать любую другую IDE, например PyCharm - www.jetbrains.com/ru-ru/pycharm/ Telegram: t.me/alishev_g Курс по GIT: www.udemy.com/course/git-alishev/?referralCode=71994763964B8E2E6A4E
@nox7925
@nox7925 3 жыл бұрын
Если бы жизнь была Python- ом , то я в ней был бы pass-ом
@luide2167
@luide2167 4 жыл бұрын
Самый лучший урок это практика. Хотелось бы каких либо супер лёгких задачек.
@user-sd2zy2qt8r
@user-sd2zy2qt8r 2 жыл бұрын
да не то слово)
@user-sd2zy2qt8r
@user-sd2zy2qt8r 2 жыл бұрын
@D1en я аналогично как и вы не могу понять туго как то прямо
@vladimirdragosh4846
@vladimirdragosh4846 3 жыл бұрын
Превосходный паттерн изложения: Теория -> Задача -> Пауза -> Анализ решения задачи. Спасибо! Вы, как и всегда, на высоте!
@ghostlyangel1623
@ghostlyangel1623 4 жыл бұрын
Со второй задачей, где нужно было посчитать слова - не сразу понял задание. Под посчитать слова я сначала подумал, что нужно просто посчитать кол-во слов, то есть например если их суммарно 16, то нужно это выяснить. Когда начал смотреть решение, понял, что что-то не так сделал. По первым словам решения подумал, что нужно создать словарь, в котором у каждого нового слова будет свой номер, и нужно посчитать кол-во уникальных слов. Сделал. И это было снова не то :D Было бы неплохо объяснить необходимый результат на примере, чтобы видеть, что должно получиться
@user-of6oz4yl8f
@user-of6oz4yl8f 4 жыл бұрын
Ты ни один такой. Я тоже подумал про общее количество my_text = 'Привет пока как дела привет привет арбуз велосипед стол как слон арбуз да привет' print (my_text.split()) len (my_text.split()) p= len (my_text.split()) print ('В этом списке ' + str(p) + ' cлов' )
@MuaddibAtreides
@MuaddibAtreides 3 жыл бұрын
но по сути все верно, он дал задачу а ты решил даже больше, значит урок дал результат)
@user-dz1uq5sd5b
@user-dz1uq5sd5b 3 жыл бұрын
а каково условие второго задания в итоге? я тоже не понял, но решение смотреть не хочу, хочу сам сделать)
@ackiid
@ackiid 3 жыл бұрын
аналогично понял задание, автору спасибо, но ставить задачу нужно точнее ))
@Borland06
@Borland06 3 жыл бұрын
Ход моих мыслей был абсолютно идентичен твоему) Сделав задание по первому сопособу подумал, не омжет же быть так просто да и словарь тут не нужен, начал смотреть решение, подумал, видимо нужно посчитать количество уникальных слов - spl_text = my_text.split() set_txt=set() for f in spl_text: f2=f.lower() set_txt.add(f2) print (set_txt) print ('В тексте ' + str(len(set_txt)) + ' уникальных слов') Но все равно не понятно, причем тут словари? Смотрю дальше, а оказывается нужно было посчитать количество повторений слов...
@crabcrab1
@crabcrab1 4 жыл бұрын
Чувствую себя отсталым, но спасибо
@ackiid
@ackiid 3 жыл бұрын
ты не один такой
@vladimirvinogradov6815
@vladimirvinogradov6815 3 жыл бұрын
@@ackiid и вас даже ни два
@ackiid
@ackiid 3 жыл бұрын
@@vladimirvinogradov6815 множество тупых )))
@vladimirvinogradov6815
@vladimirvinogradov6815 3 жыл бұрын
​@@ackiid нужно использовать список!)
@user-wc1xm5rl7k
@user-wc1xm5rl7k 3 жыл бұрын
@@vladimirvinogradov6815 и я с вами, хрен что поймешь с домашкой
@avvoltini4088
@avvoltini4088 4 жыл бұрын
Классно! Очень классная подача, всё, действительно понятно! И отличная идея с задачей, решать её в видео после паузы!
@user-gx7ns2hp4p
@user-gx7ns2hp4p 4 жыл бұрын
Круто! Очень понравилось, разбора задач мне очень нехватает,наконец-то нашла что-то клёвое
@user-fu7be4xy8b
@user-fu7be4xy8b 3 жыл бұрын
Спасибо за старание! Уважение и огромная благодарность😊 Сказать что тяжело, это ничего не сказать))) Ву блин, задачки конечно эти сложные. Реально, без просмотра не получается. А после просмотра вроде элементарно. Тяжело одним словом). Тернистым будет путь чувствую)))
@GitLev
@GitLev 3 жыл бұрын
Мой первый сенсей по Pyton! Если что то не понятно пересматриваю до понимания. Большое Спасибо! Идей и развития!
@user-dr8dk9qm2z
@user-dr8dk9qm2z Жыл бұрын
Вторая задача new_slovar = {i: n.split().count(i) for i in n.split()}
@user-vy8hu7qx1g
@user-vy8hu7qx1g 3 жыл бұрын
Спасибо за вашу работу =) продолжаю изучать новую информацию.
@alexeykozlov7836
@alexeykozlov7836 3 жыл бұрын
А я понял вторую задачу неправильно))) Подумал, что нужно подсчитать просто количество слов и сильно удивился, когда ты назвал её сложной, ибо же там всё вот так должно быть: print(len(my_text.split())). И только потом допёр, что надо было подсчитать количество повторений каждого слова)))
@AS-si3yv
@AS-si3yv 3 жыл бұрын
ахах, плюсую) тоже в строчку записал и думаю что-то тут не так..
@postrate2515
@postrate2515 4 жыл бұрын
Ждёём продолжение курса по Python !!
@davida8216
@davida8216 4 жыл бұрын
Ты лучший !!! Ура новый урок
@MaxllmuS
@MaxllmuS 3 жыл бұрын
Довольно забавные ощущения, имеется небольшой опыт в других языках программирования. Начинаешь решать все сам, делаешь все красиво. Чувство гордости все дела ) Потом открываешь решение и понимаешь что можно было сделать в 2 строчки и не вводить лишние переменные или циклы итд. Очень познавательно и интересно. Спасибо что каждый раз получается понять что то новое!
@Garbakbl
@Garbakbl Жыл бұрын
жиза
@gulzhanamirbayeva8439
@gulzhanamirbayeva8439 4 жыл бұрын
Спасибо! Все отлично в этом курсе. Есть предложение - больше реальных кейсов, как задача #convert(miles)
@ikeet
@ikeet 4 жыл бұрын
Наиль, все ждут 10 урок. Уже больше 5 месяцев прошло.. Не подведи родной
@antantus8351
@antantus8351 3 жыл бұрын
Спасибо за труды!
@vladimirkulakov6126
@vladimirkulakov6126 2 жыл бұрын
Супер! Всё получилось! Но первая задачка заставила прям подумать.
@ytilizator24
@ytilizator24 3 жыл бұрын
спасибо сенсей, обработанную полученную информацию, и отправлю как всегда задание вам, о мой сенсей
@santics9352
@santics9352 2 жыл бұрын
такие элементарные вещи объясняют так, что мозг взорвется
@user-qo4tq6xk1v
@user-qo4tq6xk1v 3 жыл бұрын
Помогите разобраться, в задаче с определением количества слов не понял. написали цикл for word in my_text.split(): if word in my_dict2: - почему здесь то проверяем наличие слова в словаре my_dict2, он же ведь еще пустой?
@almays5245
@almays5245 2 жыл бұрын
такой же вопрос !
@user-qj7bt3kx1r
@user-qj7bt3kx1r 4 жыл бұрын
Большое спасибо! Все очень ясно и понятно, жду 10 урок
@gulnarcabbarova9653
@gulnarcabbarova9653 4 жыл бұрын
Ochen xorowo obyasnaete . Spasibo bolwoe. Jdem 10 urok😊
@user-pv7cy3hg1y
@user-pv7cy3hg1y 4 жыл бұрын
Супер! Когда ожидать новый выпуск?
@1993Slevin
@1993Slevin Жыл бұрын
Наиль, привет! Спасибо большое за уроки, они правда стоящие! Действительно, второе задание не совсем корректно дано и я, как многие, просто подсчитал len, глупо радуясь быстрому успеху...)))
@user-rd8fy7gg4p
@user-rd8fy7gg4p Жыл бұрын
Спасибо огромное за уроки! С первой задачей возникли трудности, но алгоритм выполнения задачи на листе изложил верно, а вот написать программу не хватило знания синтаксиса, хотя мысли были такие как в вашем решении. Вторую задачу решил практически сразу, (первым способом), но возникли трудности, опять же, не мог понять как в словаре поставить ЗНАЧЕНИЕ +1. Перепробовав множество вариантов ( и почему-то так и не воспользовавшись знанием с прошлых уроков( +=)) я обратился к гуглу и был расстроен узнав, что все намного проще чем я думал. Респект за труды!
@musiclifeoffical
@musiclifeoffical 3 жыл бұрын
чуть по другому зделал 1 но тот же результат d={} for e in range(len(a)): c =[] if type(a[e]) == str: i = e + 1 while i
@user-ns9xt3gv1d
@user-ns9xt3gv1d 3 жыл бұрын
Слушай, я 2 задачи решил через цикл в цикле )))) Но твое решение по задачам конечно выглядит элегантнее ) Хоть мое и не такое изящное - но рад что сам решил без подсказки твоей :) И да - решение второй задачи я ещё не посмотрел :)
@user-oi1lb9lb4d
@user-oi1lb9lb4d 3 жыл бұрын
lst = ['first', 1, 2, 3, 'second', 4, 5, 'third', 3, 1, 5] myDict = dict() values = [] for elem in lst: while not type(elem) == str: values.append(elem) break if type(elem) == str: values = [] myDict[elem] = values print(myDict)
@segasey
@segasey 3 жыл бұрын
Ничего не понятно , но очень интересно!
@donfedor007
@donfedor007 3 жыл бұрын
Решение задачи номер 1 как я вижу. Теперь буду смотреть как надо было решать) a=["first", 1, 2, 3, "second", 10, 20, "third", 5, 56, 70, "fourth", -54] d={} m=[] x=len(a) for i in a: if type (i) == str: b = i m.clear() if type(i) == int: m.append(i) d[b]=m[:x] print (d)
@steelheelru
@steelheelru 4 жыл бұрын
Да, со второй задачей - не правильно, или даже не точно был задан вопрос. Нужно было наверное сказать - сколько каждого слова в списке. А то я так же как и многие (судя по отзывам) посчитал общее кол-во слов и уникальных слов )
@user-cf7bs9uj9n
@user-cf7bs9uj9n 2 жыл бұрын
Задание сложное, новичкам как мне усвоить бы как вы его решаете в этом видео, не то чтобы самому догадаться как нужно его решить.. Логика в целом понятна, но детали.. и самому о них догадаться мне лично пока крайне затруднительно было бы.
@Anonymous-fi2dw
@Anonymous-fi2dw 2 жыл бұрын
жиза
@user-yd6ch3ob5x
@user-yd6ch3ob5x 2 жыл бұрын
Да, согласна. Конечно, возможно автор хочет чтобы мы ами нашли информацию в интернете, но тут бы основы выучить и понять. У меня лично с цикла while пошла неразбериха в задачах
@McClean974
@McClean974 2 ай бұрын
интересное решение задачи через цикл for,я не додумался бы,думал надо сделать с вложенными циклами,но тоже не догнал как)) в итоге решил так: a = ['first', 1, 'second', 10, 20, 'third', 30, 40, 50, 'fourth', 15, 25, 45, 21] b = ['first', 'second', 'third', 'fourth'] c = [[1], [10, 20], [30, 40, 50], [15, 25, 45, 21]] print(dict(zip(b, c)))
@slava5935
@slava5935 4 жыл бұрын
Я все твои уроки за два дня посмотрел, затянуло Над каждым сижу думаю, зато всё ясно как божий день
@DeLanaBo
@DeLanaBo 2 жыл бұрын
Спасибо за прекрасные уроки! Условие второй задачи действительно не чётко обозначено. Но она далась легко, а первая... мне было сложно, скажу честно подсмотрела решение.
@Vladislav11111
@Vladislav11111 3 жыл бұрын
Май дикт из биг, май дикт из вери биг (с)
@gaymonteg7011
@gaymonteg7011 3 жыл бұрын
посидел над первой задачей часа 3-4. Какие только словари у меня не получались)))) И мешало мне именно то, что я не мог создать переменную без значения и то, что я долго думал, как же добавить в значение к ключу несколько элементов. Хоть убей все прошерстил, но забыл про урок list и упорно его глазами не замечал
@serjiodanilenko743
@serjiodanilenko743 3 жыл бұрын
Бывает)
@geek101grew8
@geek101grew8 4 жыл бұрын
Самый лучший учитель Alishev! А где остальные? Хорошо было бы если дальше выйдет
@alishevN
@alishevN 4 жыл бұрын
Скоро начну записывать дальше.
@imanazigova8147
@imanazigova8147 4 жыл бұрын
alishev здравствуйте! Если можете помогите пожалуйста мне с задачей, я написала код, но не знаю как сделать так чтобы выводились только порядковые номера кратные 3 Создать файл и записать в него обратные натуральные числа 1, 1/2,...,1/n. Вывести на экран все компоненты файла с порядковым номером, кратным 3. На пайтон. Я все в коде написала только вот не могу сделать там чтобы он выводил компоненты из файла с порядковым номером кратным 3, он у меня все выводит.... import pickle ask = "user.dat" n = float(input("n=")) with open(ask, "wb") as f: s = 1; while s
@user-je7qn8hu9i
@user-je7qn8hu9i 2 жыл бұрын
Вторая задача, решение с использованием set() - множество. text = 'никогда не поздно быть тем кем ты мог бы быть никогда не поздно быть тем кем ты мог бы быть' words = text.split() # создаем переменную и присваиваем ей массив со всеми словами из текста set_words = set() # создаем пустое множество for w in words: set_words.add(w) # помещаем слова в set_words (в set() нельзя поместить одинаковые элементы) print(len(set_words)) # выводим количество элементов в множестве set_words >> 9
@asatrin
@asatrin 2 жыл бұрын
Мне нравится ваш урок
@milkiway2678
@milkiway2678 3 жыл бұрын
Понимаю что я сделал не правильно, но по другому не разобрался) d = {'first': [1 , 2, 3], 'second':[10,20], 'third':[15, 56, 70], 'fourth':[-50] } print(d)
@user-lg2ri6dz5u
@user-lg2ri6dz5u 2 жыл бұрын
))))
@dsdm407
@dsdm407 2 жыл бұрын
Это называется "пойти по пути наименьшего сопротивления". Все мы так решили, хотя бы в первые полмгновения, как услышали условия задачи))
@TheMainAlexsandr
@TheMainAlexsandr Жыл бұрын
Спасибо!
@Nik_Gor
@Nik_Gor 3 жыл бұрын
Я использовал метод count для подсчета количества вхождений слов в список.
@DarkMitr
@DarkMitr 3 жыл бұрын
20:48 немного не честные условия. Я решил задачу немного другим способом, не знал что можно сразу добавлять через append в словарь ключи, поэтому сделал через две временные переменные, которые потом добавлялись как пара ключ-значение.
@automaks
@automaks 2 жыл бұрын
Такая же история :)
@nikolaypirozhkov9786
@nikolaypirozhkov9786 2 жыл бұрын
так мы не относительно словаря делаем .append, а относительно списка
@alexzdorovennov4035
@alexzdorovennov4035 3 жыл бұрын
28:00 Может кто-то мне объяснить, пожалуйста, почему в коде написано "if word in my_dict2: ...." . Как я понял, это означает:" Если в my_dict2 есть word, то что-то произойдёт. Но на этот момент же my_dict2 пустой. Или я баран и что-то не понимаю? Спасибо
@petrenkovl
@petrenkovl 3 жыл бұрын
У меня тот же вопрос. Откуда в словаре появились слова, если он инициализируется пустым?
@user-sz6cv1bo1l
@user-sz6cv1bo1l 3 жыл бұрын
#потратил не меньше 4-х часов на решение, задача была не из легких (особенно когда не знал как в 1 значении иметь от 1-го значения , и то где хранить данные ) a = ["first", 1,2,3,4,5,"second",7,8,9, "thir",11,12,13,"fur",15,-16] #сюда можно добавлять слова в зависимости от вместимости словаря i = 0 b = 0 x = 0 v = 0 m = 0 n = {} z = ["q","w","e","r","t","y","u","i","o","p"] #вместимость словаря print ("вместимость словаря :",len(z)-1,"слов") while m < len(a) : while i < len(a) and type (a[i]) == str : z[x] = [] n[a[i]]=z[x] i +=1 while i < len(a) and type(a[i])==int : z[x].append(a[i]) if i < len(a): i +=1 else: break x +=1 m +=1 print (n["first"])#поиск по имени print (n )# полный словарь
@user-cp1bo1qq2b
@user-cp1bo1qq2b 3 жыл бұрын
спасибо
@user-lp2gd8it5x
@user-lp2gd8it5x 3 жыл бұрын
Привет. У тебя во 2й задаче (2й вариант), решение выводит правильно только потому что в памяти сохранён my_dict2(из предыдущего решения). Если создать новый словарь my_dict3, то выводит только пустые скобки. Проверил в отдельном файле и действительно решение не работает. В любом случае спасибо за уроки! Пример: my_text = "Привет пока как дела привет привет арбуз велосипед стол как слон арбуз да привет" my_dict3 = {} for word in my_text.split(): if word in my_dict3: my_dict3[word] = my_dict3.get(word, 0) + 1 print(my_dict3)
@user-jx5vy2ix7c
@user-jx5vy2ix7c 3 жыл бұрын
Не очень понял, как работает .append для словаря. Можете объяснить пожалуйста логику работы этой функции? Логику добавления в обычный список понял, там всё просто.
@anynick7587
@anynick7587 2 жыл бұрын
еще актуально?
@user-tr6pl6hc1q
@user-tr6pl6hc1q 4 жыл бұрын
Лайк. Когда следующий урок?
@alisaholainen6334
@alisaholainen6334 3 жыл бұрын
А мне понравилось!
@dimasydorenko6297
@dimasydorenko6297 Жыл бұрын
list5 = ['first', 1, 2, 3,'second',10, 20,'third',15, 56, 70,'fourth', -50] dict3 = {} for vari1 in list5: if type(vari1) == str: el = [] dict3[vari1] = el else: el.append(vari1) print(dict3) Вот еще способ решения первой задачи, боле проще , как по мне
@user-dz1uq5sd5b
@user-dz1uq5sd5b 3 жыл бұрын
Подскажите пожалуйста, условие второй задачки! Не совсем понял, что необходимо сделать!
@user-dz1uq5sd5b
@user-dz1uq5sd5b 3 жыл бұрын
почитал комментарии, вроде понял суть задания, но решение, опять-таки, далеко от изящности... my_text = "Иду работать работать работать чтобы потом не работать и тупа кайфовать тупа атдыхать атдыхать работать" a = my_text.split() d = {} for i in range(len(a)): counter = 0 for j in range(len(a)): if a[i] == a[j]: counter += 1 d[a[i]] = counter print(d)
@CurS-uo6wt
@CurS-uo6wt 2 ай бұрын
Парился над 1 задачкой, решил с помощью зип) def funct3(): keys = ['first', 'second', 'third', 'fourth',] values = [1, 2, 3], [10,20], [15,60,70], [-50] dictionary = dict(zip(keys, values)) print(dictionary) h7 = funct3() print(h7)
@annaalexandrova6946
@annaalexandrova6946 4 жыл бұрын
Ура!
@uNkindggg
@uNkindggg 3 жыл бұрын
В второй задаче. У нас была сначала строка, потом мы в цикле for преобразовали ее в лист, но когда он стал словарем скажите пожалуйста?
@aqmoon9889
@aqmoon9889 3 жыл бұрын
Он им не стал, просто мы поставили сразу условие, если такого элемента НЕТ в словаре, то мы его достаем из листа как ключ, присваиваем ему значение и тогда он попадает и начинает создавать сам словарь.
@uNkindggg
@uNkindggg 3 жыл бұрын
@@aqmoon9889 Спасибо брат за отзывчивость, но я уже сам допер)
@user-md3pv1to4l
@user-md3pv1to4l 3 жыл бұрын
Решил 1 задачу начиная с конца списка, может кому интересно a = ['first', 1, 2, 3, 'second', 10, 20, 'third', 44, 543, 333,'fourth', -50] d = {} e = {} b = [] for i in range (len(a)-1,-1,-1): if type(a[i]) == int: b.append(a[i]) else: d[a[i]] = b[::-1] b = [] c = list(d)[::-1] for i in range (len(c)): e[c[i]] = d[c[i]] print(e)
@parempoomp8673
@parempoomp8673 3 жыл бұрын
d2={'привет':20, 'пока':10} if 'привет' in d2: print('yes') else: *error* *SyntaxError* : unindent does not match any outer indentation level что это за ошибка и как ее решить? пишу в idle python 3.9.0 shell
@Ache17013
@Ache17013 4 жыл бұрын
годно
@Igorr911
@Igorr911 4 жыл бұрын
Ни хрена непонятно , я один такой тупой что ли?(((
@user-ye3ju5rr5u
@user-ye3ju5rr5u 4 жыл бұрын
нет, он так обучает. дает задачу, говорит что ранее все что нужно для решения он рассказал, начинает писать код и там половину нового......а я ломал голову полчаса.......
@felixzhil
@felixzhil 4 жыл бұрын
нет, мне тоже не понятно. но мне сказал сам автор и еще знакомый из айти, что это всегда так будет) ощущение что ты ничего не понимаешь, а вокруг все такие умные. просто продолжай и все)
@user-nd9do2nk2j
@user-nd9do2nk2j 4 жыл бұрын
чтобы более менее ориентироваться в его уроках порешай интерактивную(если включить пошаговое выполнение кода, то будешь видеть как код ведет себя не каждом этапе) штуку: pythontutor. будет небольшой бэкграунд - будешь воспринимать более менее информацию.
@user-nd9do2nk2j
@user-nd9do2nk2j 4 жыл бұрын
@@felixzhil продолжать не понимать? хороший совет
@slava5935
@slava5935 4 жыл бұрын
@@user-nd9do2nk2j как включить пошаговое выполнение кода?
@yuriipylypiv2117
@yuriipylypiv2117 2 жыл бұрын
Уффф, после трех просмотров видео понял решения.. главное теперь не забыть🙃
@ylyasakmuhammedov1563
@ylyasakmuhammedov1563 2 жыл бұрын
a = ["first", 1, 2, 3, "second", 20, 30, "third", 15, 30] d = {} for element in a: if type("s") == type(element): key = element value = [] else: value.append(element) d[key] = value
@MrTwodi
@MrTwodi 4 жыл бұрын
пересмотрел 7 раз так и не понял.
@user-eu2bo1dh8b
@user-eu2bo1dh8b 3 жыл бұрын
А что не понятного?
@user-fp9tj8bj1e
@user-fp9tj8bj1e 4 жыл бұрын
Я запутался. Есть команда if e in my_dict: НО словарь my_dict пустой! как переменная 'e' пожет проверить пустой словарь и найти там нужное слово? И ещё страннее то, что команда добавляющая в my_dict переменную 'e' идёт уже после условия. Как так происходит? Объясните логику.
@user-pl7ik9to5b
@user-pl7ik9to5b 4 жыл бұрын
for e in a: - строка, а не "my_dict". То есть, сначала, берется первый член из списка "а" - "first" и определяется его тип. Если тип str, то добавляется в словарь my_dict. Потом берется второй член из списка "а" - "1", его тип не является "str" поэтому отрабатывается блок else, по которому к созданному ранее ключу добавляется значение. И т.д. Мне самому непонятно только одно, как распознается программой, что результат блока else определяется на место значения. Почему не ключа?
@slava5935
@slava5935 4 жыл бұрын
Как я понял ты о второй задаче. По идее переменная "е" проверяет словарь, в котором изначально ничего нет, пропускается первое условие, потому что проверяемого слова там точно нет, и выполняется второе, когда слову присваивается единица. Если следующим будет такое же слово, то выполнится первое условие, по которому к единице из предыдущего цикла прибавляется ещё единица. Получается слово встречается два раза, и в списке значение ключа тоже будет 2. Если слово будет другим, то цикл повториться снова со второго условия.
@user-uq5xr6xo4j
@user-uq5xr6xo4j 2 жыл бұрын
Вот чего добился я, в конце попахивает Hard cod-ом но работает при любых значениях. ЭТО МОЙ ПУТЬ! d = {} t = [] j = 0 q = 0 for i in range(len(a)-1): if type(a[j]) == str: d[a[j]] = 1 t.append(a[j+1]) j += 1 else: if type(a[j]) == int and type(a[j-1]) == str: j += 1 else: if type(a[j]) == int and type(a[j+1]) == int: t.append(a[j]) j += 1 else: t.append(a[j]) d[a[q]] = t j += 1 q = j t = [] d[a[-2]] = a[-1] print(d)
@user-eu4kj6xj1k
@user-eu4kj6xj1k 2 жыл бұрын
А если список начинается с числительных? У меня добавлена строка с проверкой.
@GoPetr
@GoPetr 4 жыл бұрын
Круто! Но спринг лучше =)))))
@ryawav
@ryawav 3 жыл бұрын
не знаю мне лично все понятно, замечательно объясняет человек
@user-jp4dg8he3c
@user-jp4dg8he3c 4 жыл бұрын
Отличные уроки! Будет ли продолжение по Python?
@alishevN
@alishevN 4 жыл бұрын
Да
@user-kv8kt7mi9i
@user-kv8kt7mi9i 4 жыл бұрын
@@alishevN когда
@ttdarko1642
@ttdarko1642 4 жыл бұрын
Как новичку первую задачу получилось решить только для конкретных данных. Понимаю, что задачка дается на подумать, но как-то очень неочевидно. На основе изученнего на канале ранее - точно бы не получилось дойти.
@alishevN
@alishevN 4 жыл бұрын
Не согласен с "На основе изученнего на канале ранее - точно бы не получилось дойти". Абсолютно все составляющие решения подробно освещались либо на этом уроке, либо в предыдущих. Я за этим отдельно слежу.
@QNikronQ
@QNikronQ Жыл бұрын
Задание 1 d = {} a = ["first", 1, 2, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50] key = 0 for element in range(len(a)): if type(a[element]) == str: key = a[element] l = [] else: l.append(a[element]) d[key] = l print(d)
@yevheniidashchenko4228
@yevheniidashchenko4228 3 жыл бұрын
Добрый день! Я не пойму одного. Как программа понимает, что стр именно в ключ надо пихать, а список из чисел - в значение. Может, кто подскажет?
@donfedor007
@donfedor007 3 жыл бұрын
for in list: if type(i) ==str: # это ключ pass elif type(i) == int: # это значение pass По типу строчный или числовой
@mrsalem8118
@mrsalem8118 4 жыл бұрын
Ещё уроков запили, плииииииииз
@felixzhil
@felixzhil 4 жыл бұрын
ура!
@cerber9715
@cerber9715 Жыл бұрын
Здравствуйте, в моменте 10:17 вывод: ключ - значение. Не легче было бы просто написать print("Ключ: ",key, " ,значение: ",value), без перевода переменных в тип str. Заранее спасибо!
@user-mo6gb9sg8j
@user-mo6gb9sg8j 4 жыл бұрын
Спасибо! Когда новый урок?
@alishevN
@alishevN 4 жыл бұрын
Скоро!
@VitaliiKondratiuk-sw5js
@VitaliiKondratiuk-sw5js 3 жыл бұрын
2 задание! my_text = "Привет как дела сколько дел тут накопилось мне конец и єто правда" my_text = my_text.split(" ") print(len(my_text))
@lokampsokolov
@lokampsokolov 3 жыл бұрын
С 3.6 словарь является упорядоченным
@user-hj2go5cf1z
@user-hj2go5cf1z 2 жыл бұрын
а что делать если в юпитере нотбук вібивает ошибку 404?
@serjiodanilenko743
@serjiodanilenko743 3 жыл бұрын
вот решил иначе пока не знал что в словарь можно под ключом положить пустой список, всё это уже прошли list1 = ['first', 1, 2, 3, 'second', 20,30, 'third', 15, 56, 70, 'fourth', -50] my_dict = {} cont = None my_list= [] for i in list1: if type(i) == str and len(my_list) > 0: my_dict[cont] = my_list if type(i) == str: cont = i my_list = [] else: my_list.append(i) print(my_dict) ps. ребята думайте головой, над реализацией, на мой взгляд пусть она будет даже иной и более ёмкой, зато именно вашей. Далее легче будет въехать и понимать принципы, плюсы и минусы других решений, и юзать лучшие из них в последующих задачах.
@oxygensss4390
@oxygensss4390 3 жыл бұрын
еще одно решение 1 задачи: a=['first', 1,2,3, 'second', 4,5,6,7, 'third', 1,43,2] c={} b=[] for elem in a: if type(elem)==str: b.clear() v=elem if type(elem)==int: b.append(elem) c[v]=b print(c)
@MuaddibAtreides
@MuaddibAtreides 3 жыл бұрын
я также решил ее)) правда загуглил как очистить массив))
@oxygensss4390
@oxygensss4390 3 жыл бұрын
@@MuaddibAtreides ага, тож часто обращаюсь к гуглу чтобы посмотреть именно методы списков и тд)
@user-oy9qk4om1x
@user-oy9qk4om1x Жыл бұрын
Для первого задания: for elem in a: if type(elem) == str: s = [] d[elem] = s else: s.append(elem) чем не вариант?
@enver-bey
@enver-bey Жыл бұрын
Для вас было легко??
@oups_leveron_crash1639
@oups_leveron_crash1639 4 жыл бұрын
Когда новый урок?
@naviurban2000
@naviurban2000 3 жыл бұрын
Можно наверно покороче, но пока так a = ["first", 1, 2, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50] x = {} # создаем пустой словарь for i in (a): # узнаем кол-во ключей if type(i) == str: x[i] = [] # добавляем ключи в словарь for key, value in x.items(): # заполняем значение (список) соотв. ключей for s in a: if key == s: # попадаем на нужное слово в списке a p = a.index(key) + 1 while type(a[p]) != str: value.append(a[p]) p += 1 if len(a) == p: # проверка чтобы не выскочить за пределы списка a break print(x) # {'first': [1, 2, 3], 'second': [10, 20], 'third': [15, 56, 70], 'fourth': [-50]}
@donfedor007
@donfedor007 3 жыл бұрын
посчитать слова без словаря можно так: a = "Приве пока как дела привет привет арбуз слон арбуз стол" print (len(a.split(' ')))
@dimabelugin
@dimabelugin 4 жыл бұрын
Извиняюсь конечно, но поставленная задача во 2ом задании не совсем соответствует решению. При постановке задачи "Подсчитайте количество слов в строке" решением будет использование команды len(my_list.split()), после чего будет подсчитано количество всех слов в строке. Если бы была поставлена задача "Посчитать количество различных слов", тогда можно было бы применять решение в видео. При первом просмотре отрезка с постановкой задачи я удивился: "Почему задача настолько проста?". Понимание задачи, которую вы имели ввиду пришло только после построения блока if. В любом случае видео очень полезны, понятны и приятны. Спасибо, что помогаешь. Кстати, будут ли дальнейшие уроки по питону?
@alishevN
@alishevN 4 жыл бұрын
Согласен, может быть двойное понимание этой постановки задачи. Уроки будут!
@VIlyaM108
@VIlyaM108 4 жыл бұрын
Собирался писать коммент на счёт len-split, а он уже здесь - красота!))
@fenallingordeev8425
@fenallingordeev8425 4 жыл бұрын
+1 было бы правильно сформулировать 2-ю задачу так "Подсчитайте сколько раз каждое слово встречается в тексте"
@papampapam4748
@papampapam4748 3 жыл бұрын
#просто для подсчета слов в строке или файле b = 'Пример текста для программы написанной на Питоне' v = len(set(b.split())) print(v) #или, но смотрите, чтобы в винде была галочка "показывать расширения файла", иначе он может у вас называться 123.txt.txt и интерпритатор его не найдет))) a = len(set(open(r'c:\temp\123.txt').read().split())) print(a)
@merchindoza
@merchindoza 2 жыл бұрын
Я немного не понял - задача 2 изначально звучит как - подсчитать количество слов в тексте. Это же считается len(my_text.split(" ")) А потом уже по ходу обьяснения решения выясняется что надо было посчитать количество слов и количество повторяющихся слов тоже!
@crypton3569
@crypton3569 2 жыл бұрын
a = ["First", 1, 2, 3, "Second", 10, 20, "Third", 15, 56, 70, "Fourth", -50] def dictionary(x): dic = {} for i in x: if type(i) == str: key = str(i) listo = [] dic[key] = listo else: listo.append(int(i)) print(dic) dictionary(a)
@alexvernua
@alexvernua 3 жыл бұрын
Пишу свои решения, до просмотра решений в видео. П.С. (после просмотра решений) во второй задаче не слишком очевидно было, что нужно подсчитать количество именно "встреч" слова, задание звучало "подсчитать количество слов в тексте" , формально можно было обойтись одной строкой: print(len(mytext2.split())) . Но уже из логики дальнейшего разъяснения задания стало ясно, что подразумевается именно количество "уникальных" слов в тексте. ))) а то, как известно, без внятного ТЗ, результат - ХЗ # Первая задача d={} a=["first", 1, 2, 3, "second", 10, 20, 50, -20, 20, "third", 15, 56, 70, "fourth", -50, "fifth", 0] for i in range(len(a)): if type (a[i])==str: list=[] temp=i+1 while type(a[temp])==int: list.append(a[temp]) temp+=1 if temp == len(a): break d[a[i]]=list print(d) # Вторая задача (попытался в массиве дополнительно подсчитать количество повторений слов) mytext="Привет пока как дела привет привет арбуз велосипед стол как слон арбуз да привет conob asdf fdfd asdf asdf" list=mytext.split() dic={} for i in list: num=0 if i in dic: num=dic[i]+1 dic[i]=num else: dic[i]=1 print (len(dic)) print (dic)
@user-wt1tp2ff3h
@user-wt1tp2ff3h 3 жыл бұрын
А что если первый элемент в списке будет не строка? А будет ошибка. Так что лучше блок "else:" заменить на "elif len(my_dict) > 0:" и уже там делать append(e) по ключу. Но за урок и задачи спасибо!
@Galim_Madraimov
@Galim_Madraimov 2 жыл бұрын
Добрый день Хочу воспользоваться подсказкрй в моей конкретной задаче. Задаче в том, чтобы создать цикл который будет по требованиям создавать словари с ключами и значениями в общем словаре. Пример Есть словарь GORODA ={} В него нужно помещать другие словари с именами городов Например MOSCOW {} С ключем "POPULATION" и значением 12000000: Пользователь должен по запросу вводить имена городов как ключи и вводить соответствующие значения. По завершении написать 'NO' и цикл закончится и выведет словарь с ключами и значениями введённых городов. Спасибо большое надеюсь понятно изложил. Прошу хелп.
@andriirogan3602
@andriirogan3602 Жыл бұрын
d.items() ------> ето же метод словаря а не функция.... да?
@egorvakulenko6198
@egorvakulenko6198 4 жыл бұрын
Task_1: a = ["first", 1, 2, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50] hash_map = {} for i in range(len(a)): key = a[i] counter = 0 if type(key) == str: counter = counter + 1 b = [] while i + counter < len(a) and type(a[i + counter]) == int: b.append(a[i + counter]) counter = counter + 1 hash_map[key] = b print(hash_map)
@sayhellotoroy
@sayhellotoroy 4 жыл бұрын
я так замаслал: myList: list = ["first", 1, 2, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50] myMap: dict = {} # ключ слово а значение это список из значений | int, str key: str = "" value: int = 0 internalList: list = [] for element in myList: if (type(element) is str): key = element internalList = [] continue elif (type(element) is int): value = element internalList.append(value) myMap[key] = internalList print(myMap) # {'first': [1, 2, 3], 'second': [10, 20], 'third': [15, 56, 70], 'fourth': [-50]}
@Vladislav11111
@Vladislav11111 3 жыл бұрын
за my_dict лайк )
@user-od8bh8fj3l
@user-od8bh8fj3l 3 жыл бұрын
a = ["First", 1, 2, 4, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50, 20] d = {} i = 0 while i
@m16utah
@m16utah 4 жыл бұрын
подписался, жду новый видос.
How to Use ChatGPT 4o by OpenAI ✦ Tutorial for Beginners
4:14
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 71 МЛН
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 27 МЛН
CAN YOU HELP ME? (ROAD TO 100 MLN!) #shorts
00:26
PANDA BOI
Рет қаралды 36 МЛН
Как устроен Python? ► Детальный разбор
11:05
Хауди Хо™ - Просто о мире IT!
Рет қаралды 579 М.
LeetCode - это сложно? РЕШАЕМ нашу первую задачу
10:15
Программист живет нормально
Рет қаралды 43 М.
Уроки  Python - Словари (dict)
10:09
Web Developer Blog
Рет қаралды 11 М.