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

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ม.ค. 2025

ความคิดเห็น • 322

  • @egoroffchannel
    @egoroffchannel  7 หลายเดือนก่อน +1

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

  • @СаняПушкин-ц4о
    @СаняПушкин-ц4о 4 ปีที่แล้ว +422

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

    • @ZaeBalAndreevych
      @ZaeBalAndreevych 4 ปีที่แล้ว +9

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

    • @ИльяЕнот-з6с
      @ИльяЕнот-з6с 3 ปีที่แล้ว +5

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

    • @СаняПушкин-ц4о
      @СаняПушкин-ц4о 3 ปีที่แล้ว +4

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

    • @АндрейБудкин-ф5щ
      @АндрейБудкин-ф5щ 3 ปีที่แล้ว +2

      @@СаняПушкин-ц4о и как уже успехи в изучении ? Стал джуном ?

    • @СаняПушкин-ц4о
      @СаняПушкин-ц4о 3 ปีที่แล้ว +12

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

  • @ВалерияМалышева-ь1в
    @ВалерияМалышева-ь1в 4 ปีที่แล้ว +30

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว +4

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

  • @Mininavel
    @Mininavel ปีที่แล้ว +4

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

    • @Cahdro
      @Cahdro 11 หลายเดือนก่อน

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

  • @elenalevasheva3830
    @elenalevasheva3830 ปีที่แล้ว +4

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

  • @ФдрФфф
    @ФдрФфф 2 ปีที่แล้ว

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

  • @markjones1878
    @markjones1878 2 ปีที่แล้ว +4

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

  • @ДмитрийШимин-ы6с
    @ДмитрийШимин-ы6с 4 ปีที่แล้ว +29

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

    • @standvik1159
      @standvik1159 4 ปีที่แล้ว +2

      нет

    • @youtubecrowd8104
      @youtubecrowd8104 ปีที่แล้ว +2

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

  • @dimaan29
    @dimaan29 5 ปีที่แล้ว +108

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

    • @m_i_r_k
      @m_i_r_k ปีที่แล้ว

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

    • @arti5946
      @arti5946 3 หลายเดือนก่อน

      Ну как спустя 4 года? Освоили ?

  • @ВладимирГлазырин-ж1щ
    @ВладимирГлазырин-ж1щ 3 ปีที่แล้ว +2

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

  • @EvgeshaFromUa
    @EvgeshaFromUa 4 ปีที่แล้ว +3

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

  • @egoroffchannel
    @egoroffchannel  4 ปีที่แล้ว +5

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

    • @TordMattias
      @TordMattias 4 ปีที่แล้ว +1

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

  • @jonnash1683
    @jonnash1683 2 ปีที่แล้ว +1

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

  • @natsudragnil1041
    @natsudragnil1041 2 ปีที่แล้ว +1

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

  • @tbbtbs
    @tbbtbs 2 ปีที่แล้ว +2

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

  • @ArtLvl-y1o
    @ArtLvl-y1o 5 ปีที่แล้ว +47

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

    • @barbi8271
      @barbi8271 3 ปีที่แล้ว +1

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

    • @ArtLvl-y1o
      @ArtLvl-y1o 3 ปีที่แล้ว +4

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

    • @barbi8271
      @barbi8271 3 ปีที่แล้ว +1

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

    • @yatanai5685
      @yatanai5685 3 ปีที่แล้ว +8

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

    • @ohkennyyyy
      @ohkennyyyy 3 ปีที่แล้ว +4

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

  • @olejka6762
    @olejka6762 3 ปีที่แล้ว +2

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

  • @Avtoinstryktor_Yaroslav
    @Avtoinstryktor_Yaroslav ปีที่แล้ว +1

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

  • @БактыбергенУрекешов-с5з
    @БактыбергенУрекешов-с5з 2 ปีที่แล้ว +1

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

  • @ananasanimator6049
    @ananasanimator6049 2 ปีที่แล้ว +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)

  • @tsypoetry
    @tsypoetry 5 หลายเดือนก่อน

    Дай бог тебе здоровья, автор!!!)

  • @ilyalitvinenko
    @ilyalitvinenko 4 ปีที่แล้ว +12

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

  • @АлексейНосиков-т4м
    @АлексейНосиков-т4м ปีที่แล้ว +1

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

  • @vika-sole
    @vika-sole 2 ปีที่แล้ว

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

  • @дмитрийСЕРГЕЕВ-м5ч
    @дмитрийСЕРГЕЕВ-м5ч 3 ปีที่แล้ว

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

  • @ДмитрийУстюжанин-ф9у
    @ДмитрийУстюжанин-ф9у 3 ปีที่แล้ว

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

  • @adikosh667
    @adikosh667 2 ปีที่แล้ว

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

  • @serhiisvyst4489
    @serhiisvyst4489 4 ปีที่แล้ว +7

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

    • @ArseniyBendyukov
      @ArseniyBendyukov 4 ปีที่แล้ว +6

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

    • @serhiisvyst4489
      @serhiisvyst4489 4 ปีที่แล้ว +1

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

    • @huji-d4t
      @huji-d4t 4 ปีที่แล้ว

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

    • @ahil7800
      @ahil7800 4 ปีที่แล้ว +4

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

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

    >>>

  • @Huskyserge
    @Huskyserge 3 ปีที่แล้ว +1

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

  • @ulanulan7739
    @ulanulan7739 5 หลายเดือนก่อน

    Благодарю вас за труд

  • @Shark_23_7
    @Shark_23_7 2 ปีที่แล้ว

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

  • @alex_pure
    @alex_pure 2 ปีที่แล้ว +2

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

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

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

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

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

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

      Красивая матрица:
      a = []
      for i in range(5):
      a.append(list(map(int, input().split())))
      for i in range(5):
      for j in range(5):
      if a[i][j] == 1:
      m = max(i, 2) - min(i, 2) + max(j, 2) - min(j, 2)
      print(m)

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

      Транспонирование - 4:
      n, m = map(int, input().split())
      a = []
      for i in range(n):
      a.append(list(map(int, input().split())))
      for i in range(n):
      for j in range(m):
      print(a[abs(i - n + 1)][j], end=' ')
      print()

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

      Сумма главной диагонали:
      n = int(input())
      a = []
      s = 0
      for i in range(n):
      a.append(list(map(int, input().split())))
      for i in range(n):
      for j in range(n):
      if i == j:
      s += a[i][j]
      print(s)

  • @kravets2404
    @kravets2404 4 ปีที่แล้ว +1

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 ปีที่แล้ว

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

  • @СтаниславРедин
    @СтаниславРедин 2 ปีที่แล้ว

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

  • @jenyshirokovaa
    @jenyshirokovaa 4 ปีที่แล้ว +3

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

  • @maltamagistro
    @maltamagistro 2 ปีที่แล้ว

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

  • @MrMirror369
    @MrMirror369 ปีที่แล้ว

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

  • @aidartimerbayev9600
    @aidartimerbayev9600 5 ปีที่แล้ว +2

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

  • @vanyavasya6685
    @vanyavasya6685 5 ปีที่แล้ว +4

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

  • @TimTim-jk1yu
    @TimTim-jk1yu 4 ปีที่แล้ว +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()

  • @beecont9187
    @beecont9187 4 ปีที่แล้ว +1

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

  • @Dayplaylist
    @Dayplaylist 3 ปีที่แล้ว +1

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

  • @erhundvimmbseowde2918
    @erhundvimmbseowde2918 ปีที่แล้ว

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

  • @Faritech318
    @Faritech318 5 ปีที่แล้ว +2

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

  • @shutka80
    @shutka80 4 หลายเดือนก่อน

    Самое доступное объяснение про матрицы. Но как вижу реальную задачу на создание матриц без определенного количества строк и столбцов, то у меня ступор. То есть вводится произвольное число значений и после этого из этого числа надо создать прямоугольную матрицу!

  • @dimaan29
    @dimaan29 5 ปีที่แล้ว

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

  • @ТоликКнязев-х8ю
    @ТоликКнязев-х8ю ปีที่แล้ว

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

  • @4etvero4ka90
    @4etvero4ka90 4 ปีที่แล้ว

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

  • @Серёга-у8е
    @Серёга-у8е 9 หลายเดือนก่อน

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

  • @RaiFuL92
    @RaiFuL92 ปีที่แล้ว

    6:50, не снизу вверх, а сверху вниз

  • @obsi1019
    @obsi1019 ปีที่แล้ว

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

  • @ПетрБудников-х5о
    @ПетрБудников-х5о 6 ปีที่แล้ว +3

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

  • @ananasanimator6049
    @ananasanimator6049 2 ปีที่แล้ว

    Сумма матриц:
    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)

  • @andreygrishin936
    @andreygrishin936 3 ปีที่แล้ว

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

  • @ВалерийБаталов-б7ь
    @ВалерийБаталов-б7ь 5 ปีที่แล้ว

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

  • @EFIM_immersive_fun
    @EFIM_immersive_fun 4 ปีที่แล้ว

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

    • @Kasadik
      @Kasadik 3 ปีที่แล้ว

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

    • @АнатолийЦарапкин
      @АнатолийЦарапкин 3 ปีที่แล้ว

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

    • @alex_pure
      @alex_pure 2 ปีที่แล้ว

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

  • @nikeopg
    @nikeopg 2 ปีที่แล้ว

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

  • @felipe3910
    @felipe3910 4 ปีที่แล้ว +1

    Спасибо!

  • @ГерманРыков-ъ6в
    @ГерманРыков-ъ6в 4 ปีที่แล้ว

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

    • @ГерманРыков-ъ6в
      @ГерманРыков-ъ6в 4 ปีที่แล้ว

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

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

  • @vadiculus5892
    @vadiculus5892 4 ปีที่แล้ว +2

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

  • @moisad1
    @moisad1 4 ปีที่แล้ว

    подскажите пожалуйста. на степике решил задачу состязания.
    решил пошагово. сначала ввел количество 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  4 ปีที่แล้ว

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

  • @Serhii_Tereshchuk
    @Serhii_Tereshchuk 5 ปีที่แล้ว +2

    Блин ... со спиралью реально жесть ... так и не додумался.
    И еще непонятки с таблицой умножения ... вроде как решил, для не очень больших отлично работает, но как быть с огромными таблицами? Сайт бракует через превышение лимита по времени ... ну не удивительно ... если таблица 100000 х 100000 и найти там числа 1000000000. Как то тут наверное метод с вложеными списками не очень подходит.

    • @ilyaivanenko4488
      @ilyaivanenko4488 5 ปีที่แล้ว +2

      В задаче Таблица умножения вложенные списки использовал для хранения делителей числа X. А делители искал по аналогии с уроком 21 (egoroffartem.pythonanywhere.com/course/python/21)
      Вот такое решение получилось:
      n, x = map(int, input().split())
      i = 1
      a = []
      while i ** 2

    • @Serhii_Tereshchuk
      @Serhii_Tereshchuk 5 ปีที่แล้ว

      @@ilyaivanenko4488 Блин ... а я то про урок о делителях то и забыл уже ... Спасиб.

    • @DoktorZlo96
      @DoktorZlo96 5 ปีที่แล้ว

      а 6-ю решил?

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      вот разбор спирали th-cam.com/video/mHTMe_Q4-Xo/w-d-xo.html

  • @pashalyk9481
    @pashalyk9481 4 ปีที่แล้ว +1

    11:41 как найти суму всех чисел в списке?

    • @platon942
      @platon942 4 ปีที่แล้ว +3

      a = [1, 2, 3, 4]
      print(sum(a))

  • @ilyalitvinenko
    @ilyalitvinenko 4 ปีที่แล้ว

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      я о том, как функция range работает в отдельном видео рассказывал
      th-cam.com/video/9J0fvF4k4F4/w-d-xo.html

    • @ilyalitvinenko
      @ilyalitvinenko 4 ปีที่แล้ว

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

  • @El3m3nTik
    @El3m3nTik 6 ปีที่แล้ว +1

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

    • @egoroffchannel
      @egoroffchannel  6 ปีที่แล้ว +4

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

  • @РоманМомотов-ш9й
    @РоманМомотов-ш9й 4 ปีที่แล้ว

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

  • @COMBINATORS
    @COMBINATORS 4 ปีที่แล้ว

    Может кто-нибудь помочь с кодом задания Состязания - 3? Код проходит только 8 проверок, но я ни как не могу понять какие такие могут быть входные данные, чтобы результат был не верным. Код ниже:
    n,m=map(int,input().split())
    a=[]
    b=[]
    for i in range(n):
    a.append(list(map(int, input().split())))
    b.append(sum(a[i]))
    if i==0:
    maxM = i
    elif max(a[i]) > max(a[maxM]):
    maxM = i
    elif max(a[i]) == max(a[maxM]):
    maxM = b.index(max(b))
    print(maxM)

    • @COMBINATORS
      @COMBINATORS 4 ปีที่แล้ว +1

      Решил сам, код:
      n,m=map(int,input().split())
      a=[]
      b=[]
      maxM=0
      maxI=0
      for i in range(n):
      a.append(list(map(int, input().split())))
      b.append(sum(a[i]))
      for j in range(m):
      if a[i][j]>maxM:
      maxM=a[i][j]
      for i in range(n):
      if maxM in a[i]:
      if maxI

  • @captain_papich
    @captain_papich 2 ปีที่แล้ว

    Транспонирование - 1
    n = 3
    matrix = [[1, 3, 5], [2, 4, 6], [7, 8, 9]]
    trans_matrix = []
    for i in range(n):
    trans_matrix.append([0] * n)
    for i in range(n):
    for j in range(n):
    trans_matrix[j][i] = matrix[i][j]
    for i in range(len(trans_matrix)):
    print(*trans_matrix[i])
    код не принимает сайт,вроде все верно

  • @БактыбергенУрекешов-с5з
    @БактыбергенУрекешов-с5з 2 ปีที่แล้ว

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

  • @АнтонМеренков-р6я
    @АнтонМеренков-р6я 4 ปีที่แล้ว

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      th-cam.com/video/pbQ4eu_9C3s/w-d-xo.html

  • @KV1NZ11
    @KV1NZ11 2 ปีที่แล้ว

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

    • @Денис-э8ш4г
      @Денис-э8ш4г ปีที่แล้ว

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

  • @alexw2074
    @alexw2074 3 ปีที่แล้ว

    print a[i][j] Выходит ошибка 'list indices must be integers or slices, not list". Может кто пояснить? Делал пошагово, как в видео.

  • @killerkey1814
    @killerkey1814 5 ปีที่แล้ว +2

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

    • @ЭдСуровый-ъ1р
      @ЭдСуровый-ъ1р 4 ปีที่แล้ว +3

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

  • @OGmirro
    @OGmirro 4 ปีที่แล้ว +12

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

  • @ДмитрийГвоздев-и7ц
    @ДмитрийГвоздев-и7ц 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 ]
      Как видим, в вырезках второй элемент, который определяет до какого элемента вырезать, не включается в саму вырезку.

  • @MrGadenysh86
    @MrGadenysh86 4 ปีที่แล้ว +1

    Разберите, пожалуйста для спонсоров эту задачу: Вам нужно посчитать сумму элементов двумерного квадратного (NxN) списка, которые расположены на главной диагонали.
    Программа сперва принимает на вход число N (N

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      Ок

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      а ссылку на задачу можно?

    • @MrGadenysh86
      @MrGadenysh86 4 ปีที่แล้ว +1

      А всё, смог сам)

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว +1

      блин, я только вот сегодня сделал
      th-cam.com/video/Gyvvs9Ltr9Q/w-d-xo.html

  • @ЛарсФордевинд
    @ЛарсФордевинд 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", т.е выхода за пределы списка, перебираем значения, не включая последнее как по строкам, так и по столбцам.

  • @kristyatatarinceva
    @kristyatatarinceva ปีที่แล้ว

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

    • @Курск-г2ч
      @Курск-г2ч ปีที่แล้ว

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

  • @galinaoliver5624
    @galinaoliver5624 ปีที่แล้ว

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

  • @maltamagistro
    @maltamagistro 2 ปีที่แล้ว

    Как установить условие в python на основе типов данных?

  • @pavelsnizhko1146
    @pavelsnizhko1146 6 ปีที่แล้ว +2

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

    • @egoroffchannel
      @egoroffchannel  6 ปีที่แล้ว +2

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

    • @pavelsnizhko1146
      @pavelsnizhko1146 6 ปีที่แล้ว

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

  • @j3x
    @j3x 2 ปีที่แล้ว

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

  • @АлексейГоман-у7ф
    @АлексейГоман-у7ф 5 ปีที่แล้ว

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

  • @cachatt
    @cachatt 4 ปีที่แล้ว +2

    А как 2д список преобразовать в 1д?

    • @Shumtakatak
      @Shumtakatak 3 ปีที่แล้ว

      from functools import reduce
      reduce(lambda x,y: x+y, n)

    • @Shumtakatak
      @Shumtakatak 3 ปีที่แล้ว

      n -> список

  • @psy-reshetnikov
    @psy-reshetnikov 4 ปีที่แล้ว

    Когда мы чисто механически меняем местами "for i in... " на "for j in..." как программа понимает, что мы ей говорим идти по столбцам, а не по строкам? У меня этот вопрос возник, сразу по ходу урока, потом пытался найти ответ, но не нашел. В примере количество элементов в строке и столбцах разное и возможно поэтому питон понимает по какому ренжу идти. А если будет одинаковое??? Две совершенно одинаковые строчки поменяли местами и что???

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      Смотри предыдущий урок про вложенные циклы

    • @psy-reshetnikov
      @psy-reshetnikov 4 ปีที่แล้ว

      @@egoroffchannel Доехал) Спасибо!

    • @ymnop9652
      @ymnop9652 3 ปีที่แล้ว

      @@psy-reshetnikov Не могли бы вы объяснить?

    • @psy-reshetnikov
      @psy-reshetnikov 3 ปีที่แล้ว

      @@ymnop9652 Пересматривал, вникал, конспектировал прямо в IDLE и въехал. В беседе бы объяснил, пожалуй., а в переписке нет, не смогу,

    • @ymnop9652
      @ymnop9652 3 ปีที่แล้ว +2

      Так понял, смотрите для простоты понимания давайте уйдём от абстрактных i j и представим это как row - строка col - столбец
      представим матрицу 5 на 5, так вот в цикле
      for row in range(5)
      for col in range(5)
      a[row][col] == ...
      тут первый цикл row и поэтому пока не пройдёт весь цикл col значение row будет 0 (т.е проходим по первой строке) и только после того как мы пройдём по всем столбцам нулевой строки, значение row станет 1. А в цикле:
      for col in range(5)
      for row in range(5)
      a[row][col] == ...
      col первый цикл и пока мы не пройдём по всем строкам нулевого(фактически первого) cтолбца значение col будет равно 0, после прохода по всем рядам col станет 1 и опять бегаем по строкам.
      Стоит обратить внимание на то что при когда мы меняем циклы местами мы не меняем местами переменные a[row][col] на a[col][row] т.к это не имеет смысла и сводит все перемены циклов на нет. Надеюсь хоть одному человеку мой комментарий поможет.

  • @inkiik
    @inkiik 4 ปีที่แล้ว

    Подскажите в чем ошибка.
    Сумма матриц.
    a,b=map(int,input().split())
    k=[]
    c=[]
    for i in range(a):
    k.append(list(map(int,input().split())))
    print()
    for i in range(a):
    c.append(list(map(int,input().split())))
    for i in range(a):
    for j in range(b):
    s=k[i][j]+c[i][j]
    print(s,end=" ")
    print()

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      о какой ошибке речь? в синтаксисе или в логике программы?

    • @inkiik
      @inkiik 4 ปีที่แล้ว

      @@egoroffchannel пишет runtime error

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      принт лишний убери между вводами списков

    • @inkiik
      @inkiik 4 ปีที่แล้ว

      @@egoroffchannel Спасибо

  • @moisad1
    @moisad1 4 ปีที่แล้ว

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว +1

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

  • @СемёнКлюкенко
    @СемёнКлюкенко 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]

  • @МатвейЛ-х6п
    @МатвейЛ-х6п 4 ปีที่แล้ว

    Здравствуйте, я не очень хорошо понял как реализовать 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  4 ปีที่แล้ว

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

    • @МатвейЛ-х6п
      @МатвейЛ-х6п 4 ปีที่แล้ว

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

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

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

  • @ДємянВ
    @ДємянВ 4 ปีที่แล้ว +1

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

    • @keramak
      @keramak 4 ปีที่แล้ว +1

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

    • @ДємянВ
      @ДємянВ 4 ปีที่แล้ว +2

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

    • @keramak
      @keramak 4 ปีที่แล้ว +1

      @@ДємянВ спасибо

  • @РафаэльРахимов-ъ9ъ
    @РафаэльРахимов-ъ9ъ 3 ปีที่แล้ว

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

  • @romankondratyev4080
    @romankondratyev4080 ปีที่แล้ว

    Очень круто!

  • @МатвейЛ-х6п
    @МатвейЛ-х6п 4 ปีที่แล้ว

    ЗДравствуйте, не могу сообразить как оформить сумму столбцов, как должно работать мысли есть а вот как в код преобразовать не знаю (. Будьте добры спасите несчастного, битый час сижу
    n, m = map(int, input().split())
    a = []
    for i in range(n):
    a.append(list(map(int, input().split())))
    for i in range(n):
    print(sum(a[i]), end=' ')
    print()
    for i in range(m):
    for j in range(n):
    ....
    *Задан целочисленный двумерный массив, состоящий из N строк и M столбцов. Требуется вычислить сумму элементов в каждой строке и в каждом столбце.

    • @egoroffchannel
      @egoroffchannel  4 ปีที่แล้ว

      это в какой задаче нужно сделать?
      могу разбор сделать ее

  • @talen7281
    @talen7281 4 ปีที่แล้ว

    как заполнить матрицу N x M вводом с клавиатуры, но через Input().split(), т е в одну строку вводить данные ?

    • @tdorenski19
      @tdorenski19 4 ปีที่แล้ว

      list(map(int, input().split()))

  • @wazzuuuuuuup
    @wazzuuuuuuup 4 ปีที่แล้ว

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

  • @oliverreviews8496
    @oliverreviews8496 4 ปีที่แล้ว

    зачем в обходе по индексам указывать точное число? Это плохая практика, конечно здесь мы знаем какой длинны массив и легко просто вписать в рендж, а если массив огромный? Считать будем? Или все-таки используем лучше range(len(a))? Думаю ответ очевиден)
    Что еще лучше, почему так сразу не делать?:
    ------------------------------
    for i in range(len(arr)):
    for j in range(len(arr[i])):
    print(arr[i][j], end=" ")
    print()
    -------------------------------
    Я может не прав, я писал раньше на C# и поэтому все это вводит слегка в ступор, так как там проще работать с индексами. Прошу если что пояснить/объяснить

  • @shamanart456
    @shamanart456 ปีที่แล้ว +1

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

  • @DecimusSaxon
    @DecimusSaxon 3 ปีที่แล้ว

    как-то неправильно у меня отображаются списки, не понял, в чём проблема(в строчку):
    sun9-58.userapi.com/impg/VSPZK6fw40gJ5hoUHo-iENO6qWk0sm1du4rkkQ/eGTdL-W3_3c.jpg?size=1280x701&quality=96&sign=69291d262611180cb8844da261f95454&type=album