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

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

Комментарии • 281

  • @alishevN
    @alishevN  4 года назад +12

    1) Плейлист этого курса вот здесь: ruclips.net/p/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 года назад +59

    Если бы жизнь была Python- ом , то я в ней был бы pass-ом

  • @100к-э2у
    @100к-э2у 3 года назад +9

    Спасибо за старание! Уважение и огромная благодарность😊
    Сказать что тяжело, это ничего не сказать)))
    Ву блин, задачки конечно эти сложные. Реально, без просмотра не получается. А после просмотра вроде элементарно. Тяжело одним словом). Тернистым будет путь чувствую)))

  • @crabcrab1
    @crabcrab1 4 года назад +82

    Чувствую себя отсталым, но спасибо

    • @ackiid
      @ackiid 3 года назад +1

      ты не один такой

    • @vladimirvinogradov6815
      @vladimirvinogradov6815 3 года назад +2

      @@ackiid и вас даже ни два

    • @ackiid
      @ackiid 3 года назад +1

      @@vladimirvinogradov6815 множество тупых )))

    • @vladimirvinogradov6815
      @vladimirvinogradov6815 3 года назад +5

      ​@@ackiid нужно использовать список!)

    • @СоняМармеладкина-з3з
      @СоняМармеладкина-з3з 3 года назад +1

      @@vladimirvinogradov6815 и я с вами, хрен что поймешь с домашкой

  • @alexeykozlov7836
    @alexeykozlov7836 3 года назад +6

    А я понял вторую задачу неправильно))) Подумал, что нужно подсчитать просто количество слов и сильно удивился, когда ты назвал её сложной, ибо же там всё вот так должно быть: print(len(my_text.split())). И только потом допёр, что надо было подсчитать количество повторений каждого слова)))

    • @AS-si3yv
      @AS-si3yv 3 года назад

      ахах, плюсую) тоже в строчку записал и думаю что-то тут не так..

  • @gulzhanamirbayeva8439
    @gulzhanamirbayeva8439 5 лет назад +6

    Спасибо! Все отлично в этом курсе. Есть предложение - больше реальных кейсов, как задача #convert(miles)

  • @ИльяБузынин
    @ИльяБузынин 2 года назад

    Спасибо огромное за уроки! С первой задачей возникли трудности, но алгоритм выполнения задачи на листе изложил верно, а вот написать программу не хватило знания синтаксиса, хотя мысли были такие как в вашем решении.
    Вторую задачу решил практически сразу, (первым способом), но возникли трудности, опять же, не мог понять как в словаре поставить ЗНАЧЕНИЕ +1. Перепробовав множество вариантов ( и почему-то так и не воспользовавшись знанием с прошлых уроков( +=)) я обратился к гуглу и был расстроен узнав, что все намного проще чем я думал.
    Респект за труды!

  • @1993Slevin
    @1993Slevin Год назад

    Наиль, привет! Спасибо большое за уроки, они правда стоящие! Действительно, второе задание не совсем корректно дано и я, как многие, просто подсчитал len, глупо радуясь быстрому успеху...)))

  • @Антон-е3я
    @Антон-е3я 3 года назад +5

    Задание сложное, новичкам как мне усвоить бы как вы его решаете в этом видео, не то чтобы самому догадаться как нужно его решить.. Логика в целом понятна, но детали.. и самому о них догадаться мне лично пока крайне затруднительно было бы.

    • @Anonymous-fi2dw
      @Anonymous-fi2dw 2 года назад

      жиза

    • @ІринаМайданюк
      @ІринаМайданюк 2 года назад

      Да, согласна. Конечно, возможно автор хочет чтобы мы ами нашли информацию в интернете, но тут бы основы выучить и понять. У меня лично с цикла while пошла неразбериха в задачах

  • @ВикторКопанов-о8с
    @ВикторКопанов-о8с 3 года назад +4

    Помогите разобраться, в задаче с определением количества слов не понял.
    написали цикл
    for word in my_text.split():
    if word in my_dict2: - почему здесь то проверяем наличие слова в словаре my_dict2, он же ведь еще пустой?

    • @almays5245
      @almays5245 3 года назад

      такой же вопрос !

  • @geek101grew8
    @geek101grew8 5 лет назад +4

    Самый лучший учитель Alishev! А где остальные? Хорошо было бы если дальше выйдет

    • @alishevN
      @alishevN  5 лет назад +3

      Скоро начну записывать дальше.

    • @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

  • @donfedor007
    @donfedor007 4 года назад +1

    Решение задачи номер 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)

  • @gaymonteg7011
    @gaymonteg7011 3 года назад +1

    посидел над первой задачей часа 3-4. Какие только словари у меня не получались)))) И мешало мне именно то, что я не мог создать переменную без значения и то, что я долго думал, как же добавить в значение к ключу несколько элементов. Хоть убей все прошерстил, но забыл про урок list и упорно его глазами не замечал

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 года назад

    Супер! Всё получилось! Но первая задачка заставила прям подумать.

  • @Igorr911
    @Igorr911 4 года назад +33

    Ни хрена непонятно , я один такой тупой что ли?(((

    • @АлександрЕгоров-ч7б
      @АлександрЕгоров-ч7б 4 года назад +23

      нет, он так обучает. дает задачу, говорит что ранее все что нужно для решения он рассказал, начинает писать код и там половину нового......а я ломал голову полчаса.......

    • @felixzhil
      @felixzhil 4 года назад +13

      нет, мне тоже не понятно. но мне сказал сам автор и еще знакомый из айти, что это всегда так будет) ощущение что ты ничего не понимаешь, а вокруг все такие умные. просто продолжай и все)

    • @user-nd9do2nk2j
      @user-nd9do2nk2j 4 года назад +2

      чтобы более менее ориентироваться в его уроках порешай интерактивную(если включить пошаговое выполнение кода, то будешь видеть как код ведет себя не каждом этапе) штуку: pythontutor. будет небольшой бэкграунд - будешь воспринимать более менее информацию.

    • @user-nd9do2nk2j
      @user-nd9do2nk2j 4 года назад +5

      @@felixzhil продолжать не понимать? хороший совет

    • @slava5935
      @slava5935 4 года назад

      @@user-nd9do2nk2j как включить пошаговое выполнение кода?

  • @Александр-у2ы8р
    @Александр-у2ы8р 3 года назад

    Спасибо за вашу работу =) продолжаю изучать новую информацию.

  • @milkiway2678
    @milkiway2678 4 года назад +10

    Понимаю что я сделал не правильно, но по другому не разобрался)
    d = {'first': [1 , 2, 3], 'second':[10,20], 'third':[15, 56, 70], 'fourth':[-50] }
    print(d)

    • @ДиванныйКритик-к7л
      @ДиванныйКритик-к7л 3 года назад

      ))))

    • @dsdm407
      @dsdm407 2 года назад

      Это называется "пойти по пути наименьшего сопротивления". Все мы так решили, хотя бы в первые полмгновения, как услышали условия задачи))

  • @DarkMitr
    @DarkMitr 3 года назад +2

    20:48 немного не честные условия. Я решил задачу немного другим способом, не знал что можно сразу добавлять через append в словарь ключи, поэтому сделал через две временные переменные, которые потом добавлялись как пара ключ-значение.

    • @automaks
      @automaks 3 года назад

      Такая же история :)

    • @nikolaypirozhkov9786
      @nikolaypirozhkov9786 2 года назад

      так мы не относительно словаря делаем .append, а относительно списка

  • @ЯКИНаступают
    @ЯКИНаступают 3 года назад +1

    #потратил не меньше 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 )# полный словарь

  • @КорнейЕвлампович
    @КорнейЕвлампович 2 года назад +1

    Вторая задача, решение с использованием 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

  • @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)
    Вот еще способ решения первой задачи, боле проще , как по мне

  • @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

  • @DeLanaBo
    @DeLanaBo 3 года назад

    Спасибо за прекрасные уроки! Условие второй задачи действительно не чётко обозначено. Но она далась легко, а первая... мне было сложно, скажу честно подсмотрела решение.

  • @merchindoza
    @merchindoza 2 года назад

    Я немного не понял - задача 2 изначально звучит как - подсчитать количество слов в тексте. Это же считается len(my_text.split(" "))
    А потом уже по ходу обьяснения решения выясняется что надо было посчитать количество слов и количество повторяющихся слов тоже!

  • @alexzdorovennov4035
    @alexzdorovennov4035 4 года назад +3

    28:00 Может кто-то мне объяснить, пожалуйста, почему в коде написано "if word in my_dict2: ...." . Как я понял, это означает:" Если в my_dict2 есть word, то что-то произойдёт. Но на этот момент же my_dict2 пустой. Или я баран и что-то не понимаю?
    Спасибо

    • @petrenkovl
      @petrenkovl 4 года назад

      У меня тот же вопрос. Откуда в словаре появились слова, если он инициализируется пустым?

  • @CurS-uo6wt
    @CurS-uo6wt 6 месяцев назад

    Парился над 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)

  • @QNikronQ
    @QNikronQ 2 года назад

    Задание 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)

  • @Vladislav11111
    @Vladislav11111 3 года назад +1

    за my_dict лайк )

  • @ЕгорСемиренко
    @ЕгорСемиренко 3 года назад +1

    Решил 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)

  • @Nik_Gor
    @Nik_Gor 3 года назад

    Я использовал метод count для подсчета количества вхождений слов в список.

  • @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)

  • @СорокаНадія-ю7ч
    @СорокаНадія-ю7ч 3 года назад

    a = ["First", 1, 2, 4, 3, "second", 10, 20, "third", 15, 56, 70, "fourth", -50, 20]
    d = {}
    i = 0
    while i

  • @Galim_Madraimov
    @Galim_Madraimov 2 года назад

    Добрый день
    Хочу воспользоваться подсказкрй в моей конкретной задаче.
    Задаче в том, чтобы создать цикл который будет по требованиям создавать словари с ключами и значениями в общем словаре.
    Пример
    Есть словарь GORODA ={}
    В него нужно помещать другие словари с именами городов
    Например MOSCOW {}
    С ключем "POPULATION" и значением 12000000:
    Пользователь должен по запросу вводить имена городов как ключи и вводить соответствующие значения.
    По завершении написать 'NO' и цикл закончится и выведет словарь с ключами и значениями введённых городов.
    Спасибо большое надеюсь понятно изложил. Прошу хелп.

  • @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. ребята думайте головой, над реализацией, на мой взгляд пусть она будет даже иной и более ёмкой, зато именно вашей. Далее легче будет въехать и понимать принципы, плюсы и минусы других решений, и юзать лучшие из них в последующих задачах.

  • @cerber9715
    @cerber9715 2 года назад

    Здравствуйте, в моменте 10:17 вывод: ключ - значение. Не легче было бы просто написать print("Ключ: ",key, " ,значение: ",value), без перевода переменных в тип str. Заранее спасибо!

  • @Антон-щ9э
    @Антон-щ9э 2 года назад

    Для первого задания:
    for elem in a:
    if type(elem) == str:
    s = []
    d[elem] = s
    else:
    s.append(elem)
    чем не вариант?

    • @enver-bey
      @enver-bey Год назад

      Для вас было легко??

  • @РоманРоманенко-л7р
    @РоманРоманенко-л7р 3 года назад

    Для первой задачи автор предлагает найти решение, которое "должно работать с любыми исходными списками" (14:07). Но решение, которое предлагает автор, работает не со всеми списками! Например, если в списке перед "first" поставить числа, то код не будет работать!

    • @iryna9182
      @iryna9182 3 года назад +1

      Автор уточняет про патерн чередования: строка - числа.

  • @andriirogan3602
    @andriirogan3602 Год назад

    d.items() ------> ето же метод словаря а не функция.... да?

  • @kvityzgames2407
    @kvityzgames2407 4 года назад +3

    почему когда вы рассказывали я понимал, а как задачи то все ,ступор?

    • @alishevN
      @alishevN  4 года назад +4

      Так всегда бывает. Понимать объяснение и уметь делать самостоятельно - это разные вещи. Надо больше практиковаться.

    • @kvityzgames2407
      @kvityzgames2407 4 года назад

      @@alishevN Спасибо

  • @vincenttarcynec5822
    @vincenttarcynec5822 2 года назад

    честно ломаю голову над домашним заданием, без подглядываний. (остановил на паузу) И пока неочень ((( Проблема там, ни так в словаре, а в том, пока, как вытащить из смеси в отдельные листы (лист ключ, и к нему лист значения) и вообще можно листы добавлять в словарь?

  • @deniszest
    @deniszest 3 года назад

    не понял зачем глобал переменная None, если и без нее всэр прекрасно работает?

  • @russkoehobby7597
    @russkoehobby7597 Год назад

    Ваще невозможно решить, если начинающий и с нулевым опытом программирования... Догадался только, что надо создать пустой словарь, наверное будет нужна переменная, в которую складываем значения из списка, ну и цыкл for... Совсем тугодум. )))

  • @GoPetr
    @GoPetr 5 лет назад +2

    Круто! Но спринг лучше =)))))

  • @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

  • @mrsalem8118
    @mrsalem8118 4 года назад +1

    Ещё уроков запили, плииииииииз

  • @donfedor007
    @donfedor007 4 года назад

    я не совсем понял задание и посчитал. общее количество слов, и сколько раз слово встречается после себя.
    a= 'Привет пока как дела привет Привет арбуз стол как арбуз'
    my_list=a.split()
    d={}
    k=0
    for i in range (len(my_list)):
    d[i]=my_list[i]
    print("Общее количество слов:", len(d))
    for i in range(len(d)):
    for j in range (i+1, len(d)):
    if d[i] == d[j]:
    k+=1
    print(f'Слово : "{d[i]}", встречается : {k}')
    k=0

  • @donfedor007
    @donfedor007 4 года назад +1

    Надо было повторные считать)

  • @YuriPachin
    @YuriPachin 2 года назад

    Может это не моё?! На практике решения такие элементарные, но в моих попытках это были "супер конструкции", которые не работали.

  • @calikatana
    @calikatana 3 года назад

    По итогу: первая задача для новичка сложна настолько, что непонятны даже последующие объяснения; ТЗ второй задачи поставлено неверно, но объяснение чуть понятнее, чем у первой. В целом чувствуешь себя неспособным к решениям.

  • @СорокаНадія-ю7ч
    @СорокаНадія-ю7ч 3 года назад

    my_text = "привет пока как дела привет арбуз велосипед стол как слон арбуз да привет"
    slova = my_text.split()
    d = {}
    for e in slova:
    a = 0
    for p in slova:
    if e == p:
    a += 1
    d[e] = a
    print(d)

  • @ГульзатСойкоева
    @ГульзатСойкоева 3 года назад

    спасибо

  • @vv.lyubimov
    @vv.lyubimov 4 года назад

    Я запутался. Есть команда if e in my_dict: НО словарь my_dict пустой! как переменная 'e' пожет проверить пустой словарь и найти там нужное слово? И ещё страннее то, что команда добавляющая в my_dict переменную 'e' идёт уже после условия. Как так происходит? Объясните логику.

    • @АндрейСвойкин-ь4ь
      @АндрейСвойкин-ь4ь 4 года назад

      for e in a: - строка, а не "my_dict".
      То есть, сначала, берется первый член из списка "а" - "first" и определяется его тип. Если тип str, то добавляется в словарь my_dict.
      Потом берется второй член из списка "а" - "1", его тип не является "str" поэтому отрабатывается блок else, по которому к созданному ранее ключу добавляется значение. И т.д.
      Мне самому непонятно только одно, как распознается программой, что результат блока else определяется на место значения. Почему не ключа?

    • @slava5935
      @slava5935 4 года назад

      Как я понял ты о второй задаче.
      По идее переменная "е" проверяет словарь, в котором изначально ничего нет, пропускается первое условие, потому что проверяемого слова там точно нет, и выполняется второе, когда слову присваивается единица. Если следующим будет такое же слово, то выполнится первое условие, по которому к единице из предыдущего цикла прибавляется ещё единица. Получается слово встречается два раза, и в списке значение ключа тоже будет 2. Если слово будет другим, то цикл повториться снова со второго условия.

  • @АскарЗарипов-ч6и
    @АскарЗарипов-ч6и 5 лет назад

    Отличные уроки! Будет ли продолжение по Python?

  • @uniosbtw1072
    @uniosbtw1072 3 года назад

    Можете обяснить решение 1 задачи пожалуйста,в которий раз пересматриваю не врубаюсь

    • @FedorovYU
      @FedorovYU 3 года назад

      создаем временную переменную, в которой храним список для ключа, затем обращаемся к этому списку и добавляем численные элементы

    • @FedorovYU
      @FedorovYU 3 года назад

      a = ['First' , 1 , 2 ,3 , "second" ,10 , 20 , "third" , 15 , 56, 70 , "forth" , -50 ]
      my_dict = {}
      tanuha = None
      for k in a:
      if type(k) == str:
      my_dict[k] = [] # пустой список для значений ключа
      tanuha = k # временная переменная для хранения списка
      else:
      my_dict[tanuha].append(k) #сохраняя для значения словаря список, мы можем к нему обращаться как к списку.
      print(my_dict)

  • @nnnnn477
    @nnnnn477 3 года назад

    просто создать временный список

  • @DmSi8
    @DmSi8 3 года назад

    Проще и короче решение первой задачи не смог придумать, увы
    a = ['first', 21, 'second', -541, 1, 'third', 'fourth', -50, 9]
    d = {}
    for i in range(len(a)):
    if type(a[i]) == str and type(a[i+1]) == int:
    a2 = []
    x = 1
    while i+x < len(a) and type(a[i+x]) != str:
    a2.append(a[i+x])
    d[a[i]] = a2
    x += 1
    elif type(a[i]) == str and type(a[i+1]) == str: # код на случай, если есть
    d[a[i]] = [] # подряд идущие строки

    print(d)

  • @Garbakbl
    @Garbakbl Год назад

    Ставь лайк, если решил вторую задачу третьим способом с помощью вложенyых циклов for

  • @hiromihirota654
    @hiromihirota654 4 года назад

    А как усложнить задачу? Хочу вывести самое популярное слово в тексте

    • @alishevN
      @alishevN  4 года назад +1

      Надо пройтись по словарю и посмотреть, у какого слова наибольший счётчик

  • @nighthunter28
    @nighthunter28 4 года назад +2

    ассоциативный массив это называется

    • @xrilicc1154
      @xrilicc1154 3 года назад

      В пайтоне dictionary

  • @lukandrate9866
    @lukandrate9866 3 года назад

    Мне было нечего делать и решил сделать простой шифратор:
    alphabet_proper = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    alphabet_proper.reverse()
    alphabet_reverse = alphabet_proper
    alphabet_proper = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    dict = {}
    z = 0
    for k in alphabet_proper:
    while True:
    dict[k] = alphabet_reverse[z]
    z += 1
    break
    dict[' '] = ' '
    print('Напиши текст без знаков препинания и он будет зашифрован')
    reply = list(input('Ваш текст(на английском)‍: ')) #писать только маленькими буквами
    print('Зашифрованная версия:', end = ' ')
    for z in reply:
    print(dict[z], end = '')

  • @antantus8351
    @antantus8351 3 года назад

    my_text = "Привет пока как дела привет привет арбуз велосипед стол как арбуз да привет"
    slovar = {}
    for e in my_text.split(" "):
    slovar[e] = []
    print(slovar)
    len(slovar)

  • @clipscore.
    @clipscore. 3 года назад

    a = ['first', 1, 2, 3, 'second', 10, 20, 'third', 15, 56, 70, 'fourth', -50]
    my_dict = {}
    current_str = None
    for e in a:
    if type(e) == 'str':
    my_dict[e] = []
    current_str = e
    else:
    my_dict[current_str].append(e)
    print(my_dict)
    Traceback (most recent call last):
    File
    my_dict[current_str].append(e)
    KeyError: None
    Что не так

  • @felixzhil
    @felixzhil 4 года назад

    ура!

  • @alionamishunin1081
    @alionamishunin1081 4 года назад

    когда новые видосики? (

  • @АлександрСмолячков-г5ж

    Решил данную задачу следующим способом :
    pustoi = []
    my_text = 'один два три четыре пять шесть четыре три один ноль'
    list_my_text = my_text.split(' ')
    summa = 0
    unuque_summa = 0
    print ('Список с повторяющимися значениями:')
    print (list_my_text)
    for word in list_my_text:
    if word not in pustoi:
    pustoi.append(word)
    print ('Список с уникальными значениями:')
    print (pustoi)
    for word_calc in list_my_text:
    if word_calc in list_my_text:
    summa = summa + 1
    print ('Сумма всех значений строки = '+ str(summa))
    for word_calc_unique in pustoi:
    if word_calc_unique in pustoi:
    unuque_summa = unuque_summa + 1
    print ('Сумма уникальных значений строки = '+ str(unuque_summa))
    Как вы считаете нормально или нет?

    • @ЕвгенийСидоров-ч9и
      @ЕвгенийСидоров-ч9и 2 года назад

      запустил твой код. выводится не совсем корретный результат:
      Список с повторяющимися значениями:
      ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'четыре', 'три', 'один', 'ноль']
      Список с уникальными значениями:
      ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'ноль']
      Сумма всех значений строки = 10
      Сумма уникальных значений строки = 7
      получается, что в списке с повторяющимися значениями есть "пять" и "шесть" которые не повторяются.
      Кстати, как успехи спустя год? программистом работаешь? напиши, если будет свободная минука.

    • @АлександрСмолячков-г5ж
      @АлександрСмолячков-г5ж 2 года назад

      @@ЕвгенийСидоров-ч9и не совсем для кодинга учил пайтон, скорее для создания собственных систем анализа данных, но отложилось все в ящик тк есть более простые решения как power bi и тд, но после твоего комментария начал задумываться о возобновлении обучения🙃

  • @Tim-chik
    @Tim-chik 3 года назад

    words="Hello my friend and brother but brother can be my friend and can not be a sister if say hello my brother it was equal that I said hello my friend"
    my_dict={}
    listWord=words.split()
    for w in listWord:
    my_dict[w]=my_dict.get(w,0)+1
    #print(w,"= ",my_dict[w]) comment out this statement, because it was a verifying print out
    print(my_dict)
    {'Hello': 1, 'my': 4, 'friend': 3, 'and': 2, 'brother': 3, 'but': 1, 'can': 2, 'be': 2, 'not': 1, 'a': 1, 'sister': 1, 'if': 1, 'say': 1, 'hello': 2, 'it': 1, 'was': 1, 'equal': 1, 'that': 1, 'I': 1, 'said': 1}

  • @ТимофійГлушко-э9ф
    @ТимофійГлушко-э9ф 2 года назад

    выбивает

  • @zhdanovsky
    @zhdanovsky 5 лет назад

    когда новый урок? хотелось бы раз в неделю получать

  • @blickwinkel2643
    @blickwinkel2643 4 года назад

    Не совсем понял как оно получилось, но решил так:
    for e1 in my_text.split():
    d1[e1] = my_text.split().count(e1)
    почему он ключи не повторяет - для меня загадка

  • @ЕгорЗверев-й8к
    @ЕгорЗверев-й8к 3 года назад

    чувствую себя тупицей, со своим решением 1й задачи, за 2ю пока еще не взялся)
    gist.github.com/TommyTheMob/51d59821c67604202a644e1f925775ee

    • @ЕгорЗверев-й8к
      @ЕгорЗверев-й8к 3 года назад

      Я не понял второе задание)). Нужно посчитать количество слов просто или уникальных слов или что?) Надеюсь на чей-нибудь ответ - и завтра попробую сделать - решение пока смотреть не хочу. Хочу сам попробовать)

    • @lukandrate9866
      @lukandrate9866 3 года назад

      @@ЕгорЗверев-й8к Нужно подсчитать количество уникальных слов

  • @truezero7560
    @truezero7560 2 года назад

    посоветуйте другие курсы, я не понимаю этого чувака, зачем он это делает! 🤣

  • @truezero7560
    @truezero7560 2 года назад

    Блэт... опять не понятно, для чего словарь 🤣
    Чувак игру пытается сделать или что?

  • @mendoclick
    @mendoclick 3 года назад

    a = ['first', 1,2,3,4,7,8,9,10, 'second', 10,20, 'five', -50]
    a_dict = {}
    for i in a:
    if type(i) == str:
    key = i
    a_dict[key] = []
    list_val = []
    elif type(i) == int:
    list_val.append(i)
    a_dict[key] = list_val
    print(a_dict)
    Мой вариант как для начинающего

  • @luide2167
    @luide2167 5 лет назад +46

    Самый лучший урок это практика. Хотелось бы каких либо супер лёгких задачек.

  • @ghostlyangel1623
    @ghostlyangel1623 4 года назад +53

    Со второй задачей, где нужно было посчитать слова - не сразу понял задание. Под посчитать слова я сначала подумал, что нужно просто посчитать кол-во слов, то есть например если их суммарно 16, то нужно это выяснить. Когда начал смотреть решение, понял, что что-то не так сделал. По первым словам решения подумал, что нужно создать словарь, в котором у каждого нового слова будет свой номер, и нужно посчитать кол-во уникальных слов. Сделал. И это было снова не то :D
    Было бы неплохо объяснить необходимый результат на примере, чтобы видеть, что должно получиться

    • @ПупканищеВзрывное
      @ПупканищеВзрывное 4 года назад +10

      Ты ни один такой. Я тоже подумал про общее количество
      my_text = 'Привет пока как дела привет привет арбуз велосипед стол как слон арбуз да привет'
      print (my_text.split())
      len (my_text.split())
      p= len (my_text.split())
      print ('В этом списке ' + str(p) + ' cлов' )

    • @MuaddibAtreides
      @MuaddibAtreides 4 года назад +2

      но по сути все верно, он дал задачу а ты решил даже больше, значит урок дал результат)

    • @ЕгорЗверев-й8к
      @ЕгорЗверев-й8к 3 года назад +1

      а каково условие второго задания в итоге? я тоже не понял, но решение смотреть не хочу, хочу сам сделать)

    • @ackiid
      @ackiid 3 года назад +3

      аналогично понял задание, автору спасибо, но ставить задачу нужно точнее ))

    • @Borland06
      @Borland06 3 года назад +1

      Ход моих мыслей был абсолютно идентичен твоему) Сделав задание по первому сопособу подумал, не омжет же быть так просто да и словарь тут не нужен, начал смотреть решение, подумал, видимо нужно посчитать количество уникальных слов -
      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)) + ' уникальных слов')
      Но все равно не понятно, причем тут словари? Смотрю дальше, а оказывается нужно было посчитать количество повторений слов...

  • @ikeet
    @ikeet 4 года назад +14

    Наиль, все ждут 10 урок. Уже больше 5 месяцев прошло.. Не подведи родной

  • @MrTwodi
    @MrTwodi 4 года назад +17

    пересмотрел 7 раз так и не понял.

  • @ГригорийМашук
    @ГригорийМашук Год назад +3

    Вторая задача new_slovar = {i: n.split().count(i) for i in n.split()}

  • @Vladislav11111
    @Vladislav11111 3 года назад +6

    Май дикт из биг, май дикт из вери биг (с)

  • @oleggg
    @oleggg 3 года назад +2

    28:20 не понятно объяснение. Многие простые вещи объясняешь по многу раз, а вещи посложнее или не явные объясняешь по одному разу или не объясняешь вообще. my_dict2[word] = my_dict2[word] + 1 "мы обращаемся по тому числу которое уже лежит по этому слову"... что?? Выглядит строка либо как добавление ключ:значение в словарь (причем ключ это слово из списка, а значение это это же слово +1), либо меняем слово из списка на это же слово + единица. Бред... Короче лезть гуглить. А когда найду там объяснения и описания всех вопросов - нахрена мне возвращаться сюда?

  • @steelheelru
    @steelheelru 4 года назад +7

    Да, со второй задачей - не правильно, или даже не точно был задан вопрос. Нужно было наверное сказать - сколько каждого слова в списке. А то я так же как и многие (судя по отзывам) посчитал общее кол-во слов и уникальных слов )

  • @vladimirdragosh4846
    @vladimirdragosh4846 4 года назад +10

    Превосходный паттерн изложения: Теория -> Задача -> Пауза -> Анализ решения задачи. Спасибо! Вы, как и всегда, на высоте!

  • @postrate2515
    @postrate2515 4 года назад +9

    Ждёём продолжение курса по Python !!

  • @segasey
    @segasey 3 года назад +5

    Ничего не понятно , но очень интересно!

  • @avvoltini4088
    @avvoltini4088 5 лет назад +6

    Классно! Очень классная подача, всё, действительно понятно! И отличная идея с задачей, решать её в видео после паузы!

  • @davida8216
    @davida8216 5 лет назад +7

    Ты лучший !!!
    Ура новый урок

  • @КириллОструбин
    @КириллОструбин 3 года назад +2

    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)

  • @musiclifeoffical
    @musiclifeoffical 3 года назад +1

    чуть по другому зделал 1 но тот же результат
    d={}
    for e in range(len(a)):
    c =[]
    if type(a[e]) == str:
    i = e + 1
    while i

  • @АнтонСачук-х9э
    @АнтонСачук-х9э 3 года назад +3

    Слушай, я 2 задачи решил через цикл в цикле )))) Но твое решение по задачам конечно выглядит элегантнее ) Хоть мое и не такое изящное - но рад что сам решил без подсказки твоей :) И да - решение второй задачи я ещё не посмотрел :)

  • @ttdarko1642
    @ttdarko1642 4 года назад +2

    Как новичку первую задачу получилось решить только для конкретных данных. Понимаю, что задачка дается на подумать, но как-то очень неочевидно. На основе изученнего на канале ранее - точно бы не получилось дойти.

    • @alishevN
      @alishevN  4 года назад +1

      Не согласен с "На основе изученнего на канале ранее - точно бы не получилось дойти". Абсолютно все составляющие решения подробно освещались либо на этом уроке, либо в предыдущих. Я за этим отдельно слежу.

  • @lokampsokolov
    @lokampsokolov 3 года назад +2

    С 3.6 словарь является упорядоченным

  • @asatrin
    @asatrin 2 года назад +1

    Мне нравится ваш урок

  • @asatrin
    @asatrin 2 года назад +1

    Я поставил ей 1000000

  • @MaxllmuS
    @MaxllmuS 3 года назад +2

    Довольно забавные ощущения, имеется небольшой опыт в других языках программирования.
    Начинаешь решать все сам, делаешь все красиво. Чувство гордости все дела )
    Потом открываешь решение и понимаешь что можно было сделать в 2 строчки и не вводить лишние переменные или циклы итд.
    Очень познавательно и интересно. Спасибо что каждый раз получается понять что то новое!

  • @АлександрНео-й2ж
    @АлександрНео-й2ж 4 года назад +1

    Привет. У тебя во 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)

  • @McClean974
    @McClean974 6 месяцев назад

    интересное решение задачи через цикл 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)))

  • @trailermovies8191
    @trailermovies8191 2 года назад

    C:\Users\User\PycharmProjects\forlooppython\venv\Scripts\python.exe C:/Users/User/PycharmProjects/forlooppython/main.py
    Traceback (most recent call last):
    File "C:\Users\User\PycharmProjects\forlooppython\main.py", line 10, in
    my_dict[e] = []
    TypeError: 'tuple' object does not support item assignment
    У меня такая ошибка выходит

  • @nikitabukanov660
    @nikitabukanov660 3 года назад +1

    Хочу быть функцией pass

  • @АндрейДьячков-я7ф
    @АндрейДьячков-я7ф 4 года назад

    Мой, более длинный вариант решения второй задачи
    # Задача 2 (посчитать кол-во слов в тексте)
    text = 'привет Привет пока арбуз код кот ручка чат слово ещё слово слово слово слово слово слово слово слово'
    slova = text.split(' ')
    d_slova = {}
    temp = 0
    for e in slova:
    if e in d_slova:
    d_slova[e] = d_slova[e] + 1
    else:
    d_slova[e] = temp
    temp += 1
    dlina = len(d_slova)
    print(dlina)
    print(d_slova)

  • @svagg
    @svagg 3 года назад

    Задача номер #2
    from collections import Counter
    my_text = 'арбуз шампиньён хуй мочка рыгота даун даун Арбуз '
    v=(my_text.title()) #все слова с заглавной
    spl = (v).split() #перенос строки в список
    cnt=Counter(spl) #создание пары ключ-значение из списка в словарь
    print(cnt)
    (Он ведь не говорил что нельзя просто все слова начать делать с заглавной)