29 Вложенные списки Python

Поделиться
HTML-код
  • Опубликовано: 25 окт 2018
  • 🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
    stepik.org/course/63085/promo
    👉👉👉 Свой вопрос по курсу можешь задать в чате
    t.me/+SlnNhAO7caBlNDM6
    👉👉👉 Также подписывайся на мой телеграмм-канал
    t.me/python_egoroff
    egoroffartem.pythonanywhere.co...
    В видео познакомимся со вложенными списками
    Рассмотрим как их создавать и обращаться по индексам к элементам вложенного списка
    Научиться обходить элементы двумерного списка (аналог двумерного массива в других языках)
    Найдем сумму элементов строки матрицы
    Найдем сумму элементов столбца матрицы
    Рассмотрим квадратные матрицы (таблицы)
    Узнаем, что такое главное диагональ, а также какие элементы ей принадлежат, а какие лежат выше/ниже главной диагонали
    Задачи для самостоятельного решения
    Транспонирование - 1
    acmp.ru/asp/do/index.asp?main...
    Транспонирование - 2
    acmp.ru/asp/do/index.asp?main...
    Красивая матрица
    codeforces.com/problemset/prob...
    Сумма матриц
    acmp.ru/asp/do/index.asp?main...
    Симметричная ли матрица?
    informatics.msk.ru/mod/statem...
    Симпатичный узор
    acmp.ru/asp/do/index.asp?main...
    Фотографии Брейна
    codeforces.com/problemset/prob...
    Спираль
    acmp.ru/index.asp?main=task&i...
    egoroffartem.pythonanywhere.co...
    На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
    Все видео этого курса можете найти на сайте
    egoroffartem.pythonanywhere.co...
    или в Вк
    videos-177962775?secti...
    Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
    artem_egoroff
    python.study
    В данном группе можете найти информацию о новых видео и задать вопросы

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

  • @egoroffchannel
    @egoroffchannel  25 дней назад +1

    🫵 Теория без практики - ничто, поэтому 👇
    🐍 stepik.org/course/63085/promo
    👉 специально для тебя создал бесплатный топовый курс по Python
    👉 В нем тебя ждет:
    📗 более 400 практических заданий на программирование
    📗 более 250 тестовых заданий на проверку материала
    📗 десятки часов видеоматерилов по теории
    📗 видеоразборы решения заданий
    📗 текстовые материалы по урокам, примеры кода
    📗 доступ к закрытому чату с дружественной обстановкой
    📗 сертификат в случае успешного прохождения курса

  • @user-xz4fc6fv5r
    @user-xz4fc6fv5r 4 года назад +408

    Спасибо за видео . учу питон уже месяц . благодаря вам стал ощущать себя намного тупее чем раньше )

    • @SigmaTroon
      @SigmaTroon 3 года назад +7

      Так тебе помогло видео или нет?

    • @user-xp7dx2bq4z
      @user-xp7dx2bq4z 3 года назад +4

      хаахахахахахахаха

    • @user-xz4fc6fv5r
      @user-xz4fc6fv5r 3 года назад +3

      @@SigmaTroon да , лучший канал

    • @user-ks7vk3ip6i
      @user-ks7vk3ip6i 3 года назад +2

      @@user-xz4fc6fv5r и как уже успехи в изучении ? Стал джуном ?

    • @user-xz4fc6fv5r
      @user-xz4fc6fv5r 3 года назад +11

      @@user-ks7vk3ip6i ну смотря что считать джуном , на работу еще не берут, но какйнибудь сайт или скрипт небольшой написать могу. Сейчас на джуна требования как на синьера

  • @dimaan29
    @dimaan29 4 года назад +104

    Эта тема про матрицы сложнее даже, чем функции))))

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

      А как насчёт dataframe-ов?)

  • @user-fs9gp6oz8x
    @user-fs9gp6oz8x 4 года назад +28

    Спасибо огромное! Прочитала разные объяснения на форумах про вложенные списки, но ваше самое понятное и доступное:) Рада быть спонсором вашего канала. У вас качественный контент.

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

      спасибо, очень приятно)

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

    коротко и без воды. супер. Спасибо за труд.

  • @elenalevasheva3830
    @elenalevasheva3830 Год назад +3

    Спасибо за урок, отличный материал и подача. Без суеты, без спешки и все понятно. Супер

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

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

  • @Mininavel
    @Mininavel 10 месяцев назад +1

    спасибо за уроки. Пересмотрела много видео про вложенные списки, поняла наконец, по вашему объяснению. Наглядно и понятно! Спасибо огромное. 2 недели изучаю, но застряла на вложенных циклах, как-то трудно было представить, а тут всеп понятно. Благодарю!

    • @Cahdro
      @Cahdro 4 месяца назад

      Такая же ситуация, застрял)) Материал очень хорошо изложен, спасибо автору.

  • @user-vm2mu9ri2d
    @user-vm2mu9ri2d 4 года назад +29

    Артем, СПАСИБО огроменное за проделанную работу! Только благодаря Вашим доходчивым словам Пайтон дается легко и просто :)

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

      нет

    • @youtubecrowd8104
      @youtubecrowd8104 Год назад +2

      Ну не легко, но намного проще чем могло бы быть

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

    Большое спасибо, ваша подача + нормальное объяснение дает возможность понять что такое вложенные списки и как с ними работать! По моему мнению это видео одно из лучших для начального ознакомления со вложенностями!

  • @vika-sole
    @vika-sole Год назад

    Все супер объяснили!! Огромная благодарность!

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

    Первое просмотренное видео на канале. После 5 минут захотелось поставить лайк. Грамотное объяснение и сопровождение!

  • @jonnash1683
    @jonnash1683 Год назад +1

    Самые подробные видео из всех, что встречал на ютубе. Спасибо вам большое

  • @Avtoinstryktor_Yaroslav
    @Avtoinstryktor_Yaroslav Год назад +1

    спасибо за урок ! это уже какой то новый уровень! буду осваивать! Спасибо за ваши труды!

  • @natsudragnil1041
    @natsudragnil1041 Год назад +1

    очень доволен этим уроком, очень хорошо объясняете, удачи вам во всех начинаниях!

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov Год назад

    Артём, благодарю! 👍 🔥🔥🔥

  • @boratesor
    @boratesor 2 года назад +2

    Огромное спасибо вам за ваши уроки! Благодаря вам я начал понимать в языке и теперь занимаюсь по вашим видео

  • @user-xy2jm7zt5u
    @user-xy2jm7zt5u Год назад

    13:35 заполнение вложенного списка с клавиатуры.
    Используется дополнительный временный список, для хранения элементов одной строки. А потом за один раз всю эту строку добавляем в основной список.
    Очень понятно видео, спасибо.

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

    Спасибо большое! Очень доходчиво и понятно!

  • @user-zy4nt8pm1z
    @user-zy4nt8pm1z 2 года назад +1

    Бро ты лучшее всех!!! Такому материала не ожидать. Молодец

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

    Спасибо. Полезный материал

  • @user-rf9ju9li5t
    @user-rf9ju9li5t 2 года назад

    Спасибо все очень понятно. Усвоил то что до этого не мог понять!
    Лайк поставил! И подписался.

  • @user-ch1ny3xx7p
    @user-ch1ny3xx7p 4 года назад +45

    Благодаря тебе я выучил питон и теперь легко даются другие языки. Спасибо за это огромное

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

      Здравствуйте. За сколько вы выучили?

    • @user-ch1ny3xx7p
      @user-ch1ny3xx7p 3 года назад +4

      @@barbi8271 за год не постоянных тренировок в этой сфере

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

      @@user-ch1ny3xx7p я уже все. Ничего не хочу

    • @yatanai5685
      @yatanai5685 3 года назад +8

      @@barbi8271 Не сдавайся! Мы тупенькие, но упорные! В этом нужно просто постоянно вариться!

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

      @@barbi8271 Не повторяй моих ошибок.Лучше не забрасыв учёбу

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

    Артем, большое спасибо за твой труд.
    Отличная подача материала. 5+

  • @user-np6gi2ls5o
    @user-np6gi2ls5o Год назад +1

    После этой темы уже можно сделать небольшую игру или первую настоящую программу )))))Большое спасибо

  • @user-ec7zd9tb3h
    @user-ec7zd9tb3h 2 месяца назад

    Огромное спасибо!!!

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

    Очень круто!

  • @user-ok2vw2rf4u
    @user-ok2vw2rf4u Год назад

    Огромное спасибо за этот урок

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

    Большое спасибо! Нашел много интересного и полезного для себя.

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

    Спасибо огромное!Все просто и понятно👏

  • @user-eh2kl3er1v
    @user-eh2kl3er1v 5 лет назад +3

    спасибо за видео, жду продолжения

  • @ananasanimator6049
    @ananasanimator6049 Год назад +2

    Транспонирование 1:
    a = []
    b = []
    n = int(input('n: '))
    for i in range(n):
    a.append(list(map(int, input(' ').split())))
    for i in range(n):
    b.append([0]*n)
    for i in range(n):
    for j in range(n):
    b[j][i] = a[i][j]
    for i in b:
    print(i)

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

    Спасибо!

  • @user-jc3nt8jy3c
    @user-jc3nt8jy3c 2 года назад

    Хорошее оъьяснение, но с первого раза мало что понял.Только начало.,Будем смотреть еще и еще раз!

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

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

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

    Разбор задач
    Транспонирование 2 - ruclips.net/video/QfqcqeTrSR0/видео.html
    Сумма главной диагонали ruclips.net/video/Gyvvs9Ltr9Q/видео.html
    Симметричная ли матрица - ruclips.net/video/JEu4oF3l7w4/видео.html
    Красивая матрица - ruclips.net/video/6TXtHdiyyCo/видео.html
    Сумма матриц - ruclips.net/video/pbQ4eu_9C3s/видео.html
    Подарок для Лены - ruclips.net/video/YSqZmLr9uss/видео.html
    Спираль ruclips.net/video/mHTMe_Q4-Xo/видео.html
    Морской бой 2 ruclips.net/video/BA9zmfQyfdo/видео.html
    Состязания-3 ruclips.net/video/_tzOEBBFkJs/видео.html

    • @user-gm8kf7jj1d
      @user-gm8kf7jj1d 3 года назад +1

      Вам следует закрепить этот комментарий

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

    Спасибо вам,не такая сложная тема,главное не вставать пока не поймёшь

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

    ТОПОВЫЙ КУРС!

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

    всё очень понятно, спасибо за уроки

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

    Большое спасибо я на конец то понял эту тему

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

    спасибо за лекцию, жаль выбрал не ваш курс на степике!

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

    Нет ни слова про определитель матрицы. Хорошо, что есть Numpy)))

  • @user-jd5ck6gn3v
    @user-jd5ck6gn3v 4 года назад

    Как же это сцуко элегантно!!!

  • @user-bj1zw2cj7u
    @user-bj1zw2cj7u Год назад

    Спасибо.

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

    лайк! очень годно :)

  • @user-jx2ko6ir7h
    @user-jx2ko6ir7h 4 года назад

    Большое спасибо!очень доходчиво и просто

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

    спасибо спасибо спасибо!

  • @Mirror13088
    @Mirror13088 8 месяцев назад

    Слишком быстро. Но, контент, очевидно полезнейший.

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

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

  • @user-ft9sd1gj4g
    @user-ft9sd1gj4g 2 года назад

    Cпасибо

  • @user-qg6ro9dk9g
    @user-qg6ro9dk9g Год назад

    Thank you

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

    очень круто обьяснил , спасибо !

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

    гайсы, я тут немного экспериментировал во время видео, и обнаружил что если вместо новой инициализации списка b = [ ] в цикле применить b.clear() то результат будет совершенно иной. Это взорвало мне мозг! Короче получается что после clear() конечный список 'a' хранит в себе сука ссылки на ту же память что и 'b', просто вывод дважды один и тот же список! это значит что если менять содержимое 'b' то и содержимое 'a' меняется. НО! Если применить инициализацию b = [ ] то все работает как надо, и в конечном списке 'a' будут копии данных из 'b' каждой итерации внутреннего цикла!
    a = [ ]
    b = [ ]
    l = int(input()) # line
    c = int(input()) # column
    for i in range(l):
    b.clear()
    < ---- дело все в этом. у автора тут b = [ ]
    for j in range(c):
    b.append(int(input()))
    a.append(b)
    for i in a:
    print(i)
    Входные данные:
    2
    2
    3
    4
    6
    7
    Результат:
    [6, 7] # это текущее состояние b
    [6, 7] # выходит что а просто ссылается на ту же память
    применение clear()
    >>> a = []
    >>> b = []
    >>> a = [1, 1, 1, 1]
    >>> b
    []
    >>> a
    [1, 1, 1, 1]
    >>> b.append(a)
    >>> b
    [[1, 1, 1, 1]]
    >>> a.clear()
    # воздействуем на a
    >>> b
    [[]]
    # и b изменился тоже! т.е. b ссылается на ту же память что и а
    >>> a
    []
    >>>
    >>>
    применение инициализации
    >>>
    >>> a = []
    >>> b = []
    >>> a = [1, 1, 1, 1]
    >>> b.append(a)
    >>> b
    [[1, 1, 1, 1]]
    >>> a
    [1, 1, 1, 1]
    >>> a = []
    # а вот после такого воздействия на а, дающего такой же результат что и a.clear()
    >>> a

    []
    >>> b
    # для b выделяется свою память и b не реагирует на изменения в а
    [[1, 1, 1, 1]]

    >>>

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

    Фига себе. Да ты красавец! Очень ясно и наглядно. +

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

    Спасибо бро ну тема очень тяжелая

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

    Лучший

  • @erhundvimmbseowde2918
    @erhundvimmbseowde2918 10 месяцев назад

    Видео этого канала как буст на ускорение разработки первого скрипта, начинающего програмистера)

  • @user-xk9bf6uu2p
    @user-xk9bf6uu2p 4 года назад +1

    боже спасибо

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

    Спасибо за помащ

  • @uralstalker9900
    @uralstalker9900 Год назад +1

    Хотелось бы отдельно уроки по PyCharm типа как смотреть работу переменных, в роликах это не особо рассказывается и приходится по нескольку раз перематывать чтоб понять что там нажали.

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

      По шагову роботу кода можна нажав на кнопку дебагер в пайчарме

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

    Артем, подскажите, пожалуйста, почему при выводе строк в обратном порядке, в цикле for i range(2, -1, -1) вы пишите вторым элементом -1, если нужен обход но ноля. (откуда идем, до куда идем, с каким шагом), не понял почему там -1.
    Спасибо!

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

      я о том, как функция range работает в отдельном видео рассказывал
      ruclips.net/video/9J0fvF4k4F4/видео.html

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

      @@egoroffchannel Точно, -1 не включая это число, то есть до ноля.
      Спасибо!

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

    После видео: задумался, встал, покурил, задумался о смысле жизни....

  • @4etvero4ka90
    @4etvero4ka90 3 года назад

    Даладно и вот это 7:00 я искал пол дня что бы сделать формулу для линейной алгебры и в итоге не нашёл и решил повторить синтаксис.

  • @user-pj1md9th4n
    @user-pj1md9th4n Год назад

    Можно пожалуйста разобрать последнюю задачу, заполнение матрицы

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

    Спасибо за материал. Очень подробно и понятно! Автор молодчина. Только почему в конце матрица не сработала, когда число строк стало 5?. Первая цифра 3 (индекс 0,0), а должна быть 10(а она с индексом 0,1 уже получается). Или я что то не понял?

    • @user-et5ko4vw3z
      @user-et5ko4vw3z Год назад

      Все правильно, первая 10, просто быстро листает

  • @El3m3nTik
    @El3m3nTik 5 лет назад +1

    А можно ли изменять букву которую мы вытащили из списка например : a[1][0].upper() , если да то как сделать первую заглавную букву?

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

      У строк есть метод capitalize(). Он так раз делает первую букву заглавной, все остальные маленькие

  • @user-ss2ws6zc7x
    @user-ss2ws6zc7x 4 года назад

    Артем, могли бы вы подсказать с задачей acmp.ru/asp/do/index.asp?main=task&id_course=1&id_section=8&id_topic=120&id_problem=746? Не совсем понятно, как считывать данные, когда между матрицами пробел.

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

      ruclips.net/video/pbQ4eu_9C3s/видео.html

  • @user-br5xq1yl7s
    @user-br5xq1yl7s 2 года назад

    ❤️❤️❤️

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

    Комментарии для поддержки канала 🖐️😉

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

    👏👍

  • @OGmirro
    @OGmirro 3 года назад +12

    Легкий способ научиться рисовать сову.
    1. Рисуем круг - это будет голова совы.
    2. Рисуем овал впритык к кругу - это будет тело совы.
    3. Рисуем остальную сову.
    Примерно так я понимаю это видео)))

  • @user-wr5rc5pp8r
    @user-wr5rc5pp8r 3 года назад

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

    • @user-wr5rc5pp8r
      @user-wr5rc5pp8r 3 года назад

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

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

      да я что то стисняюсь камеры)

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

    Сумма матриц:
    n, m = map(int, input(' ').split())
    matrix1 = []
    matrix2 = []
    resmatrix = []
    for i in range(n):
    matrix1.append(list(map(int, input(' ').split())))
    print()
    for i in range(n):
    matrix2.append(list(map(int, input(' ').split())))
    for i in range(n):
    resmatrix.append([0]*m)
    for i in range(n):
    for j in range(m):
    resmatrix[i][j] = matrix1[i][j] + matrix2[i][j]
    print(resmatrix)

  • @user-fz9on5yy3y
    @user-fz9on5yy3y 4 года назад +1

    Здравствуйте,а как можно вложенные списки преобразовать в кортежи отдельные,чтоб 1 вложенный список стал кортежом,второй и тд?

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

      Можно через цикл/ генератор списков преобразовать каждый подмассив основного массива.
      array = [ [1,2,3],
      [4,5,6],
      [7,8,9] ]
      new_array = [ ]
      for subarray in array:
      new_array.append(tuple(subarray))
      /
      new_array = [tuple(subarray) for subarray in array]

  • @user-zy4nt8pm1z
    @user-zy4nt8pm1z 2 года назад

    15:24 я тут шоке так можно было

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

    подскажите пожалуйста. на степике решил задачу состязания.
    решил пошагово. сначала ввел количество n и m, потом заполнил матрицу путем добавления
    потом прошел по значениям и суммировал результаты каждого и вывел максимальное значение.
    но посмотрев решения других участников обучения я не совсем понял некоторые моменты
    и вспомнил что такие моменты уже были в предыдущих задачах.
    вот строка в которой L присваевается прям сразу пол задачи
    n, m = map(int, input().split())
    L = [[int(i) for i in input().split()] for i in range(n)]
    S = [sum(i) for i in L]
    print(max(S), S.index(max(S)), sep='
    ')
    не могли бы вы пошагово расписать происходящее в этой строке
    или в этой где a присваевается решение в одну строку. и зачем в конце первой строки
    стоит список из одного нуля
    n = int(input().split()[0])
    a = [sum(list(map(int, input().split()))) for _ in range(n)]
    print(max(a), a.index(max(a)), sep='
    ')
    честно говоря я почувствовал себя умственно хуже чем чувствовал до этого
    потому что ребята находящиеся на том же месте в обучении что и я сделали
    что то, что мне не совсем понятно

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

      Генераторы списков посмотри видео

  • @user-mw2co3wb9k
    @user-mw2co3wb9k 3 года назад

    подскажите условие if для вывода обратной диагонали матрицы, пробовал что то вроде:
    if i == -j:
    или даже
    if i ==(-j-1):
    ны работаэт =(

  • @user-lb6vr6cs5m
    @user-lb6vr6cs5m 4 года назад

    Подскажите, пожалуйста, как в задаче "Симпатичный узор" так написать код, чтобы выдавало одно значение "yes" при симпатичном узоре?
    a = []
    for i in range(4):
    b = []
    for j in range(4):
    b.append(input())
    a.append(b)
    for i in a:
    print(i)
    for i in range(4):
    for j in range(4):
    if a[i][j] == a[i][j+1] and a[i][j] == a[i+1][j+1] and a[i][j] == a[i+1][j]:
    print("yes")
    else:
    print("no")
    Если ставлю счетчик, чтобы выдало yes по условию, то программа выдает ошибку:
    "IndexError: list index out of range". На break же программа не реагирует продолжая заход на следующую строку по циклу.

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

      Изначально задать переменной значение ответа, которое будет изменяться в случае выполнения условной конструкции.
      flag = 'Yes'
      for i in range(len(m)-1):
      for j in range(len(m[i])-1):
      if (m[ i ][ j ] == m[ i ][ j+1 ] ==
      m[ i+1 ][ j ] == m[ i+1 ][ j+1 ]):
      flag = 'No'
      print(flag)
      Чтобы избежать ошибки "list index out of range", т.е выхода за пределы списка, перебираем значения, не включая последнее как по строкам, так и по столбцам.

  • @user-qs7st3sw8c
    @user-qs7st3sw8c 3 года назад +1

    Хм я всё понял,вчера читал в книге сегодня наткнулся на урок-всё чётко

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

      Не скажите название книгу?

    • @user-qs7st3sw8c
      @user-qs7st3sw8c 3 года назад +2

      @@keramak Марк Лутс,Изучаем Пайтон. 5е издание.1часть

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

      @@user-qs7st3sw8c спасибо

  • @TimTim-jk1yu
    @TimTim-jk1yu 3 года назад +1

    То, как я решил задачу "Спираль"
    /----------------------------------
    n = int(input())
    a = []
    for i in range(n):
    a.append([0] * n)
    i = 1
    aX = 0
    aY = 0
    direction = 1
    # 1 right
    # 2 down
    # 3 left
    # 4 up
    while i < n*n:
    while direction == 1:
    if aY < n - 1 and a[aX][aY + 1] == 0:
    a[aX][aY] = i
    aY += 1
    i += 1
    else:
    direction = 2
    while direction == 2:
    if aX < n - 1 and a[aX + 1][aY] == 0:
    a[aX][aY] = i
    aX += 1
    i += 1
    else:
    direction = 3
    while direction == 3:
    if aY > 0 and a[aX][aY - 1] == 0:
    a[aX][aY] = i
    aY -= 1
    i += 1
    else:
    direction = 4
    while direction == 4:
    if aX > 0 and a[aX - 1][aY] == 0:
    a[aX][aY] = i
    aX -= 1
    i += 1
    else:
    direction = 1
    a[aX][aY] = i
    for i in range(n):
    for j in range(n):
    print(a[i][j], end=' ')
    print()

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

    Огромное спасибо за видео. Вопрос. 12:00. range(3) и range(4). Как они понимают что есть столбец а что есть строка. Само определяет где есть такая длина? Спасибо

    • @ArseniyBendyukov
      @ArseniyBendyukov 4 года назад +6

      Вложенные списки - это строки, которые в видео индексируются [ i ]. А из-за того, что они являются элементами главного списка, то и индексируются в первую очередь.
      Столбцы составляются из элементов вложенных списков (строк) с одинаковыми индексами. Поэтому, т.к. столбцы состоят из элементов вложенных списков, то и индексируются они вторыми. В видео использовали индексацию столбцов [ j ].
      Вообще, использовать "i" и "j" в циклах - это своеобразное негласное правило в программировании.
      Думаю, ответ исчерпывающий :)

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

      @@ArseniyBendyukov Да. Спасибо!

    • @user-zj9dh7wu1p
      @user-zj9dh7wu1p 3 года назад

      @@ArseniyBendyukov чувак, я полностью скопировал код, и он у меня почему то не работает

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

      @@serhiisvyst4489 Не верный ответ. Просто после циклов он пишет print a[i][j]. Соответственно и выводится так - i первый индекс - номер строки, j - второй индекс - номер столбца. А как вы эти переменные назовёте это не важно. Важно что вы запросите на печать

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

    Товарищи, подскажите, просмотрев все видео, кроме спонсорских можно на основании полученных знаний поменять строки местами? Не могу решить задачу красивая матрица. Ответ знаю, что максимум за 4 раза можно в центр поместить однерку при условии, что она в одном из углов. А как менять строки в ту или другую сторону не могу додуматься. Кода не жду, хотя бы направление куда двигаться исходя из пройденных курсов без всяких matrix и пр. Того чего ещё не было. Дело принципа.
    Мысль такая ещё, что строка это индекс i списка и соответственно поменять строки это поменять значения под данным индексом. Т.е. я должен обойти строку идентифицировать в этой строке 1, если она есть то поменять следующую строку с текущей ( если в индексах то а[i] на а[i+1]) Пока пишу мысль развивается...может нужен промежуточный список, куда складывать данные...

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

    4:41 - а почему списки запринтились тоже с переносами на новую строку??

  • @user-rm9sd2rb6x
    @user-rm9sd2rb6x 4 года назад +1

    а можно вопрос, вы показали как обращаться к числам в списке, а как их выборочно выводить?

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

      В соответствии с индексом элемента?

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

      Смотря что вы хотите вывести...
      Если только 1 элемент из списка, то можно использовать индексацию, т.к. списки это позволяют. Например:
      A = [ 1, 2, 3, 56, 3.7, "Hello" ]
      print( A[ 0 ] , A[ -1 ] )
      # Вывод: >>> 1 Hello
      Индекс [ -1 ] означает, что берётся последний элемент итрерируемого объекта (списка). Ну, а т.к. в Python отсчёт идет не с 1, а с 0, то чтобы вывести первый элемент, используем [ 0 ].
      Если хотите вывести некоторую часть / отрывок из списка, то используйте "вырезку". Это долго объяснять, но тема очень простая, и легко найти подходящий видеоурок.
      Пример вырезки:
      B = [ ' q ', 1 , 728.4 , ' python ' ]
      print( B[ 1 : 3 ] )
      # Вывод: >>> [ 1 , 728.4 ]
      Как видим, в вырезках второй элемент, который определяет до какого элемента вырезать, не включается в саму вырезку.

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

    эта самый лутшый канал! Почему так мало подпишиков?

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

    давайте видео по List Comprehensions пожалуйста, а то знаю немного с++ а преподаватель мой питоновский гамнокод не принимает(

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

      про генераторы списков,я правильно понял?) если о них речь, то сперва мне надо про функции видео снять

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

      egoroff_channel хорошо будем ждать спасибо за старание )

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

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

    • @user-nt7gf6kb5w
      @user-nt7gf6kb5w 4 года назад +3

      Могу дать совет. Напишите такую же программу в PyCharm и с помощью команды Debug понаблюдайте за каждым действием программы. Тогда все становится намного понятнее

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

    Замечание. Про обратный обход. Ведь можно ренжировать в обратном порядке, тоесть:
    for i in reversed(range(3))
    for j in reversed(range(3))
    Везде 3, т.к копировал у себя. Опять же, так я думаю, несколько проще, просто дописать reversed()

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

      или же range(len(n),-1,-1)

    • @user-nx4od7cp7m
      @user-nx4od7cp7m 2 года назад

      @@bohdankrutskevych7467 почему вторая граница -1? не могу понять.

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

      @@user-nx4od7cp7m потому, что нижняя граница диапазона (start) включается в последовательность, а верхняя (stop) - нет

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

    в Pandas'е будет быстрее)

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

    Здравствуйте, подскажите пожалуйста, Как решить задачу "Симметричная матрица"?

    • @user-ys8wm1nk8k
      @user-ys8wm1nk8k 4 года назад

      a=int(input())
      t=[]
      count=0
      for i in range(a):
      b=list(map(int,input().split()))
      t=t+[b]
      for j in range(a):
      for j2 in range(a):
      if t[j][j2]!=t[j2][j]:
      count+=1
      if count==0:
      print('yes')
      else:
      print('no')

  • @As-hv9fj
    @As-hv9fj 3 года назад

    Спасибо огромное, подскажите пожалуйста, я не поняла задачу "красивое матрица", о чем она и что там надо делать?

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

      Так разбор задачи есть)

    • @As-hv9fj
      @As-hv9fj 3 года назад

      @@egoroffchannel нету, я не могу понять саму смысл, откуда цифра 3 выходит, несколько раз прочитала то так и не поняла суть задачи.

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

      @@As-hv9fj а где найти эту задачу

  • @shamanart456
    @shamanart456 Год назад +1

    на середине видео я перестала понимать что происходит и кто я...

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

    Здравствуйте! Возможно мне не ответят, но информацию все равно найти не могу.
    Объясните пожалуйста, как без ввода значений элементов I и j, через range , функция понимает что I это строка, а j это столбец. И при перемене местами( где j мы ставим в первом цикле, а I в вложенном) python все равно считывает j как столбец, а не строку? При этом если ввести квадратную матрицу, функция тоже понимает где I это строка, j столбец. Спасибо за уроки.

    • @user-yq7tt2wp4p
      @user-yq7tt2wp4p Год назад

      Значение в print смотрите, которое местами не меняется поэтому при перемене местами i и j сначала выводится индекс вложенного цикла потом внешнего.

  • @user-yf7ce2xi6c
    @user-yf7ce2xi6c 3 года назад

    Здравствуйте, я не очень хорошо понял как реализовать 2-ю задачу, где необходимо обойти элементы матрицы сверху вниз слева направо, а не понимаю как это сделать если у нас количество столбцов = количеству строк. Помогите пожалуйста.
    n = int(input())
    a = []
    for i in range(n):
    a.append(list(map(int, input().split())))
    for i in range(n):
    for j in range(n):
    print(a[i][j],end=' ')
    print()
    вот до чего только додумался, а вот как поменять не понимаю (

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

      Привет, так разбор задачи есть, я там объяснил как это делать

    • @user-yf7ce2xi6c
      @user-yf7ce2xi6c 3 года назад

      @@egoroffchannel что- то не могу найти в плейлисте, не могли бы вы ссылку дать, пожалуйста

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

      @@user-yf7ce2xi6c закрепленный комментарий в этом видео, задача Транспонирование 2

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

    хотел на отладке посмотреть но она при запуске выдает это
    pydev debugger: process 6388 is connecting
    Connected to pydev debugger (build 193.6911.25)

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

      все нормально, говорит что процесс отладки запущен
      ниже этих слов вводи свои значения

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

    Вложенные списки в народе матрицы

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

    Транспонирование - 1
    Первая строка входного файла INPUT.TXT содержит натуральное число N
    Подскажите пожалуйста как читать из текстового файла?

  • @user-km7nt1rb8z
    @user-km7nt1rb8z 3 года назад

    Как ввести матрицу с клавиатуры, не задаваясь количеством строк и столбцов, имея в качестве окончания матрицы ключевое слово, к примеру, 'end'?

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

    Mne interesno pochemy ia ne mogu predidushee video posmotret, kakoeto ogranichenia po memberam?! Ne podskajite problemu?!

  • @As-hv9fj
    @As-hv9fj 3 года назад

    С вами можно связаться на Инстаграмме или фаэйсбуке?