#25. Вложенные циклы. Примеры задач с вложенными циклами | Python для начинающих

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 106

  • @ВикторТуманов-р9з
    @ВикторТуманов-р9з 2 роки тому +43

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

  • @FollowersNone
    @FollowersNone 15 днів тому

    Сергей Балакирев - мощнейший специалист, вырос на ваших уроках, спасибо за труд!

  • @paveldudnikov5302
    @paveldudnikov5302 3 роки тому +29

    Здорово когда автор рассказывает где это на практике можно применять!

  • @LimonES268
    @LimonES268 2 роки тому +5

    Самое классное, профессиональное объяснение! АВТОРУ наше Уважение!!!

  • @КошкаКошкина-ж1е
    @КошкаКошкина-ж1е Рік тому +20

    После слов: "делается это очень просто" 15:24 стало совсем не просто)

  • @Alex-uh4cr
    @Alex-uh4cr 2 роки тому +4

    Супер! Это самое лучшее объяснение цикла for , которое я встретил за 1.5 года!

    • @Alex-uh4cr
      @Alex-uh4cr 2 роки тому

      Но потом с суммой двух списков как начал городить и я начал лагать 😆

    • @Stanis_LOVE
      @Stanis_LOVE 2 роки тому +1

      Ты спустя полтора года до сих пор на циклах сидишь ? ? Что с карьерой в IT?

    • @nitroexpress9928
      @nitroexpress9928 Рік тому

      ​@@Stanis_LOVE кто понял жизнь тот не спешит.

  • @rafaelkireyev2984
    @rafaelkireyev2984 2 роки тому +3

    Спасибо. Вы высококлассный преподаватель.

  • @coffeeglek6773
    @coffeeglek6773 2 роки тому +4

    Супер! Огромное спасибо за Ваши труды

  • @redrats9175
    @redrats9175 2 роки тому +3

    мужик ты заслужил ЛАЙК хорошей работой и лайк на СТЕПИКЕ! спасибо за объяснение

  • @SistemaZakata
    @SistemaZakata 2 роки тому +7

    Самое доступнейшее объяснение темы! Спасибо)

  • @БолотбайТоробеков-з8ц

    Очень полезный урок

  • @vlad-qx5fu
    @vlad-qx5fu Рік тому +4

    Брависсимо!!!💪🦾

  • @wizardx_X
    @wizardx_X Рік тому +3

    Перевернул матрицу по-другому. Хорошая задача, спасибо!)
    for i in range(4):
    l = list()
    for j in range(4):
    l.append(s[j][i])
    s1.append(l)

  • @andredru4278
    @andredru4278 9 місяців тому +1

    Спасибо. Все понятно.

  • @elenalevasheva3830
    @elenalevasheva3830 Рік тому +7

    Спасибо за урок, доходчиво и понятно. Мне только не понятно какие должны быть мозги чтобы придумать алгоритм как в последнем примере (транспонирование матрицы) . Как у Перельмана наверное.

  • @suiunbekiskenderov7444
    @suiunbekiskenderov7444 3 роки тому +3

    Спасибо огромное.

  • @seventesla2743
    @seventesla2743 Рік тому +11

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

  • @locky1827
    @locky1827 Рік тому +1

    I like these lessons!

  • @jamjam3337
    @jamjam3337 Рік тому +2

    Спасибо!👏👍

  • @alimagomedovich8237
    @alimagomedovich8237 2 роки тому +1

    хорошо объяснил!!! спасибо

  • @olegkomlev
    @olegkomlev 2 роки тому +2

    10:57 Думаю нагляднее и эффективнее вместо " while line.count(' '): " писать " while ' ' in line: ". 1) Это понятней (читается "Пока двойной пробел в строке"), чем "Пока количество двойных пробелов в строке < не равно нулю>" 2) Незачем подсчитывать, сколько именно двойных пробелов в строке (как это делает count). Оператору in достаточно найти первое вхождение, чтобы решить, нужно ли продолжать цикл, остаток строки можно не просматривать.

    • @Youtubbber
      @Youtubbber 2 роки тому

      Я же правильно понимаю, что таком случае цикл будет перебирать всю строку с самого начала после каждой замены? Разве не будет лучше однократно перебирать строку, и находя пробел, делать проверку на то, что следующий символ не является пробелом, в противном случае удалять его и продолжать проверку?

    • @olegkomlev
      @olegkomlev 2 роки тому

      @@Youtubbber Совершенно верно. Эффективнее чем line.count и ' ' in line просматривать строку и оставить только тот пробел, перед которым нет пробела. Тогда строка будет просмотрена только 1 раз. Но в любом случае " while ' ' in line: " эффективнее, чем while line.count(' '):

    • @Youtubbber
      @Youtubbber 2 роки тому

      @@olegkomlev я с вами согласен.

  • @АндрейПетров-б6я1с
    @АндрейПетров-б6я1с 2 роки тому +12

    Пайтон дай мне сил пройти все уроки до конца

  • @azizsaparniyazov4601
    @azizsaparniyazov4601 9 місяців тому +1

    я еще в прошлых заданиях без знания еще этой темы пользовался вложенными циклами по наитию)

  • @vladis..
    @vladis.. Рік тому +1

    a = [[1, 2, 3], [4, 5, 6], [3,3,3]]
    c = []
    for j in range(len(a[0])):
    r = []
    for i in range(len(a)):
    r.append(a[i][j])
    c.append(r)
    print(c)
    Что если по индексу менять? если матрица не квадратная

  • @levprom4228
    @levprom4228 Рік тому +6

    Сложность нарастает. Приходится снижать скорость видео с моих стандартных х1.8 до х1.4.

  • @МаксимГалкин-э5р

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

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Пока не берите в голову. Я вроде объясняю для чего она здесь.

  • @ekaterinad3350
    @ekaterinad3350 2 роки тому +1

    Спасибо огромное,все очень доступно объяснили. наконец-то я поняла до конца))

  • @аноним-х3ш
    @аноним-х3ш 2 роки тому +2

    15:23 таймкод для себя(как же сложно вникнуть в суть построения программы по алгоритму. Почему именно так, а не иначе)

  • @аноним-х3ш
    @аноним-х3ш 2 роки тому +1

    9:00 у меня есть своя реализация решения, она более продуманная. Но если бы я писал на C++, то и не парился бы, но это Python, и что-то мне подсказывает, что моё решение не вписывается в его культуру. Можно ли как-то преобразовать мой код к более питоновскому?
    #two-dimensional list
    two_dim_a = [[2, 34], [4, 8, 1], [2, 0, 7], [6756, 78]]
    two_dim_b = [[9, 12, 3], [44, 5, 6], [2, 2, 2]]
    c = []
    for i in range(max(len(two_dim_a), len(two_dim_b))):
    c.append(list())
    for i, two_dim_lst in enumerate((two_dim_a, two_dim_b)):
    for j, lst in enumerate(two_dim_lst):
    for k, elem in enumerate(lst):
    if i == 0:
    c[j].append(elem)
    elif k < len(c[j]):
    c[j][k] += elem
    else:
    c[j].append(elem)
    print(c)

  • @СарматПересветов
    @СарматПересветов 19 днів тому +1

    Like!

  • @СергейСмирнов-ь8у
    @СергейСмирнов-ь8у 3 роки тому +3

    👍

  • @b1n4r73
    @b1n4r73 9 місяців тому

    На 12:15 Вы используете функцию list(map(int, input())) для назначения двух переменных M и N, но две переменные можно назначить и с помощью только map(int, input()).. Объясните пожалуйста, чем был обоснован выбор использования list, если его отсутствие дает тот же результат в данных условиях? И почему list при наличии двух переменных дает значение обеим переменным, а не делает первую переменную списком? Заранее огромное спасибо!

    • @selfedu_rus
      @selfedu_rus  9 місяців тому

      да, здесь можно и без list

  • @alexeychasovnikov1793
    @alexeychasovnikov1793 3 роки тому +4

    Сергей, что то мне очень тяжело даются циклы, даже с Вашими объяснениями, может быть посоветуете что то почитать?

    • @selfedu_rus
      @selfedu_rus  3 роки тому +4

      За всю жизнь осилил только одну книжку по программированию целиком и та была по С++ )) Практикуйтесь, все другое мало что даст. Теории здесь достаточно.

    • @ghostlynomad7788
      @ghostlynomad7788 3 роки тому

      Можно попробовать эту: Майкл Доусон - Программируем на Python

    • @babeandproducer
      @babeandproducer 2 роки тому +1

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

    • @babeandproducer
      @babeandproducer 2 роки тому +2

      Если конечно для научных лаборатории софт писать не будешь. Там весь код сплошная математика не из школьной программы.

    • @Юлия-ч9с6й
      @Юлия-ч9с6й 2 роки тому

      @@babeandproducer спасибо, мне даже не много полегчало :)

  • @tm_workout
    @tm_workout 2 роки тому +1

    a zacem napisali na 11:53 t[i] = line . ya tut [i] ne ponel nelzyali napisat prosto t = line ? mojete obyasnit pojaluysta

  • @vieslavjastrzembskij6436
    @vieslavjastrzembskij6436 2 роки тому +1

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

  • @apm_7520
    @apm_7520 Рік тому +1

    Здравствуйте, подскажите пожалуйста как сложить значения двух списков (не вложенных) на пример: а = [1,2,3], b = [3,4,5]
    = [4,6,8] ?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      res = list(map(sum, zip(a, b)))

    • @apm_7520
      @apm_7520 Рік тому

      @@selfedu_rus подскажите, а, можно это сделать при помощи цыкла и среза? Без дополнительных функцый (map, sum, zip)?

  • @andreybrit7015
    @andreybrit7015 2 роки тому +1

    Добрый день. Вопрос по практическим заданиям. Говорите пройти их в конце каждого урокаю . Где они находятся.? Cпасибо за структурированный материал.

    • @selfedu_rus
      @selfedu_rus  2 роки тому

      ссылка на stepik под каждым видео

    • @ney107-iz6xl
      @ney107-iz6xl Рік тому

      Да нотам сначала

  • @nomadicus77
    @nomadicus77 Рік тому +2

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

    • @selfedu_rus
      @selfedu_rus  Рік тому

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

  • @studyhard8380
    @studyhard8380 3 роки тому +3

    Извиняюсь за тупой вопрос, я вот не понимаю как b[i][j] ссылается на элементы списка, в с списке b

    • @selfedu_rus
      @selfedu_rus  3 роки тому +1

      смотрите еще раз списки и вложенные списки

    • @perf2.078
      @perf2.078 2 роки тому

      индексы те же самые, что и для а, они же "симметрично" складываются

    • @asfdasdf9019
      @asfdasdf9019 2 роки тому

      тоже наглухо не вдупляю каким образом for i in a работает в списке b ?! но работает!.....бля..я тупой ток щас дошло :) оно никуда не ссылается, а тупо подставляет значения хранящиеся в этих переменных.

  • @ney107-iz6xl
    @ney107-iz6xl Рік тому +1

    T[i]= Line что значит
    Таймкод12.14
    Тойсть там i это весь код который был написан

  • @nikitasobur8011
    @nikitasobur8011 2 роки тому +1

    Спасибо большое за урок, но есть вопрос. При решении задачи с транспонированием матрицы индекс j пробегает значения от i + 1 до len(A) - 1 включительно. Почему не возникает ошибка по типу index out of range при достижении индексом i крайнего значения равного len(A) - 1, ведь тогда j из логики работы функции range() будет принимать значение len(A), но элемента с таким вторым индексом нет (т.к. счет индексов с нуля и до len(A) - 1)?

    • @selfedu_rus
      @selfedu_rus  2 роки тому

      Этот конкретный вопрос лучше в телеграм-канале обсудить.

    • @olegkomlev
      @olegkomlev 2 роки тому

      На последней итерации внешнего цикла i=len(A) - 1. При этом внутренний цикл превращается в for j in range(len(A),len(A)). Диапазон range(len(A),len(A)) содержит 0 элементов ,т.е пуст. Поэтому внутренний цикл не выполнится ни разу, а значит и значения элементов из А по указанным индексам не будут вызваны. Поэтому никакой ошибки index out of range не будет. Кстати, это говорит о том , что последняя итерация внешнего цикла не нужна. Посмотрите на рисунок матрицы, мы обмениваем элементы выше главной диагонали с симметричными им, которые ниже. Но в последней строке нет элементов выше гл.диагонали. Т.е. последнюю строку не нужно обрабатывать. Так что внешний цикл правильнее записать for i in range(len(A)-1).

    • @nikitasobur8011
      @nikitasobur8011 2 роки тому

      @@olegkomlev спасибо за ответ. Я вас понял, при том, что именно эти задачи курса (как видно по дате комментария), проходил достаточно давно.

  • @1усфа
    @1усфа Рік тому

    18:00 не совсем понятна пятая строка. Странно, сто это не приводит к неправильному решению. Мы A[ i ] [ j ] приравниваем к A [ j ] [ i ], затем A [ j ] [ i ] к A[ i ] [ j ], который мы задали равным A [ j ] [ i ].
    То есть эта строка должна выдать два одинаковых значения A [ j ] [ i ]

  • @zacadaaa
    @zacadaaa 2 роки тому +4

    Сложно (

  • @nihaoarigato
    @nihaoarigato 2 роки тому +1

    11:33 а line какой тип имеет? Что-то я не понял смысла действий. А можете с питоньего на русский перевести? Буду очень признателен

  • @anbur9197
    @anbur9197 7 місяців тому

    11:15 а если в качестве шапки цикла поставить while “ “ in line

  • @sng-vv
    @sng-vv 2 роки тому +1

    13:55 Может кто-то объяснить,
    a,b = list(map(int, input().split()))
    и
    a,b = map(int, input().split())
    будут работать одинаково? Просто автор до этого показывал второй вариант, а что насчёт первого?
    Я проверил, работает вроде 1 в 1, но нужен ответ от знающих людей XD что в этом случае делает list()?

    • @olegkomlev
      @olegkomlev 2 роки тому +1

      map возвращает не список, а итератор. Попробуйте, выполнить в терминале map(int, '11 20'.split()) и list(map(int, '11 20'.split()))
      В первым случае будет , во втором [11,22]. Т.е. map возвращает не готовый список ,а некий "полуфабрикат", который можно превратить в список при помощи list (чтобы потом например, вывести при помощи print). А можно с этим "полуфабрикатом" (итератором) еще что-то сделать. Например, next():
      t=map(int, '11 20'.split())
      a=next(t) #a=11
      b=next(t) #b=20
      Но если рассматривать только с точки зрения значений a и b, то
      a,b = list(map(int, '11 20'.split()))
      и
      a,b = map(int, '11 20'.split())
      будут работать одинаково. А именно, так:
      1)
      t=iter(map(int, '11 20'.split())) # из итератора получается тот же итератор
      a=next(t) #a=11
      b=next(t) #b=20
      2)
      t=iter(list(map(int, '11 20'.split()))) # из списка получается итератор
      a=next(t) #a=11
      b=next(t) #b=20

    • @sng-vv
      @sng-vv 2 роки тому

      @@olegkomlev спасибо за ответ, разобрался =)

  • @thecollatzhypothesis1088
    @thecollatzhypothesis1088 2 роки тому

    ​ @selfedu Привет можешь пожалуйста подсказать что у меня не правильно? Код прилагаю ниже.Я хочу чтобы если число чётное он его делил на 2 , если нечётное то умножал 3 и плюсовал 1 а потом если чётное опять делил на 2 а дальше если нечётное умножал уже на 5 и плюсовал 1......и дальше всё заново....но проблема что он после 3+1 не делит на 2 а умножает преведущие число на 5+1.....

    • @thecollatzhypothesis1088
      @thecollatzhypothesis1088 2 роки тому

      def z(number):
      if number % 2 == 0:
      print(number // 2)
      return number // 2
      elif number % 2 == 1:
      result = 3 * number + 1
      print(result)
      if number % 2 == 0:
      print(number // 2)
      return number // 2
      elif number % 2 == 1:
      result = 5 * number + 1
      print(result)
      return (result)
      n = input("Give me a number: ")
      while n != 1:
      n = z(int(n))

    • @selfedu_rus
      @selfedu_rus  2 роки тому

      такие вопросы в телеграм-канал по Python

  • @Alex-ho8ke
    @Alex-ho8ke 3 роки тому +3

    Я начал читать текст получившийся) "Ведь были ж заданья боевые" заданья слова нету) эх вы))

    • @selfedu_rus
      @selfedu_rus  3 роки тому +5

      В поэзии слова часто немного видоизменяются для рифмы и стиля. Почитайте стихи ))

    • @perf2.078
      @perf2.078 2 роки тому

      @@selfedu_rus Тогда по ритму лучше "Заданья были боевые"

    • @olegkomlev
      @olegkomlev 2 роки тому +1

      @@perf2.078 Ну тогда и в 3-й строчке нужно размер исправить, а в последней рифму:
      ...
      Балакирев что дал?
      Заданья были боевые,
      ...
      Как он их все решал!

    • @olegkomlev
      @olegkomlev 2 роки тому

      Из Викисловаря:
      "зада́нье. Существительное, неодушевлённое, средний род, 2-е склонение (тип склонения 6*a по классификации А. А. Зализняка).
      МФА: [zɐˈdanʲɪ̯ə]
      Семантические свойства: устар., разг. и поэт. то же, что задание "
      Так что, слово есть, но оно "неофициальное" (официальное - "задание"). "Заданье" может использоваться в стихах, в разговорной речи и в литературе (как художественный прием).

  • @nomadicus77
    @nomadicus77 Рік тому +2

    ну и каша получается с этими вложенными списками))) так много всего нужно учитывать жесть

  • @user-qj8fv8zd1f
    @user-qj8fv8zd1f Рік тому

    18.12 Я один не понял зачем нам после того, как мы уже перебрали наш список А и поменяли местами элементы, зачем нам испол зевать цикл для вывода на экран ? Почему нел зя просто написать print(A) ?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Можно и так, просто через for матрица выводится в виде таблицы.

    • @user-qj8fv8zd1f
      @user-qj8fv8zd1f Рік тому

      @@selfedu_rus Спасибо за ответ)

  • @radaruho
    @radaruho 2 роки тому +1

    while ' ' in a:
    a = a.replace(' ', ' ')

  • @ney107-iz6xl
    @ney107-iz6xl Рік тому +1

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

  • @АленаПростоева
    @АленаПростоева Рік тому +2

    for i in range(1,100):
    for j in range(0,10):
    print(i,j,sep='')
    получается список от числа 10до999 ыыыы

  • @return_1101
    @return_1101 2 роки тому +1

    Я застрял в цыклы. 😁

  • @sergeyrogkoff4528
    @sergeyrogkoff4528 5 місяців тому +1

    Легко и просто…😢

  • @ney107-iz6xl
    @ney107-iz6xl Рік тому

    Последний код улучшенный
    Плюс с объяснениями
    Здесь мы определили матрицу «A» 4x4 как список списков, где каждый внутренний список представляет строку матрицы.
    Теперь перейдем к основной части кода:
    питон
    Скопировать код
    # Перебираем строки
    для i в диапазоне (len(A)):
    Мы используем цикл for для перебора строк матрицы. Переменная «i» используется в качестве индекса строки и повторяется от 0 до 3, поскольку в матрице «A» четыре строки.
    питон
    Скопировать код
    # Перебираем столбцы, начиная со второго столбца (индекс 1)
    для j в диапазоне (1, len(A[i])):
    Внутри цикла строк у нас есть еще один цикл for. Этот внутренний цикл используется для перебора столбцов каждой строки, начиная со второго столбца (индекс 1). Мы используем переменную «j» для представления индекса столбца.
    питон
    Скопировать код
    # Поменять местами элементы в одной строке
    А[i][1], А[i][j] = А[i][j], А[i][1]
    Внутри внутреннего цикла у нас есть строка, выполняющая операцию замены. Он меняет местами элементы в одной строке: элемент в столбце 1 (A[i][1]) заменяется элементом в столбце «j» (A[i][j]). Это эффективно переупорядочивает элементы внутри каждой строки.
    После того, как эти замены будут применены ко всем строкам и столбцам, в матрице «А» элементы в каждой строке будут переупорядочены.
    Наконец, мы печатаем модифицированную матрицу «А» в табличном формате:
    питон
    Скопировать код
    # Распечатываем модифицированную матрицу
    для r в A:
    для x в r:
    print(x, end='\t')
    Распечатать()
    Мы используем вложенные циклы для перебора строк и столбцов модифицированной матрицы «A» и печати каждого элемента, разделенного табуляцией («\t»). В результате табличное представление измененной матрицы выводится на консоль.
    Таким образом, этот код правильно меняет местами элементы в одной строке матрицы «А» 4x4, а затем отображает измененную матрицу в табличном формате.

  • @JuliettAngel
    @JuliettAngel 2 роки тому +3

    Вот вообще эту тему не понимаю. Как-то аж желание пропало продолжать. Математику забыла и лень вспоминать...Все эти матрицы и прочее

  • @bazbazis8705
    @bazbazis8705 2 роки тому +1

    8:14 почему b[i][j]???????????? почему 2 индекса????? вообще ничего не понятно
    PS
    разобрался, только ни в одном предыдущем уроке про двойной индекс ни слова!!!!!!!

  • @albert_turchinov
    @albert_turchinov 2 роки тому

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

  • @Himera1983
    @Himera1983 7 місяців тому +1

    ОБЪЯСНИТЕ ! почему r.append(x + b[ i ] [ j ] ) сработало ? Мы не переберали b в методе enemerate( ) и не создавали для них i и j / Почему эти i и j стали индексом и значением переменной списка b ? . Вы да и вообще никто и книги это не показали и не пояснили этот момент. Почему append принимает такое выражение. Может если два одинаковых списка и один мы перебрали и создали переменные i и j то что они становиться по умолчанию индексом и значением с такими названиями переменных в фор и для B ????????

    • @ARLIAMANJHO
      @ARLIAMANJHO 10 днів тому

      Потому что списки a и b - одинаковые по структуре и у списка b есть такие индексы, со значением [i] и [j]. Поэтому мы берём и условно к списку b[0][0] прибавляем x. Тут дело не в переменных по умолчанию, видоизмени список b, добавь еще один вложенный список в него и у тебя эта функция уже не сработает

  • @swaytornado8327
    @swaytornado8327 2 роки тому

    Здравствуйте. Выполняю пример с вашего урока, ввожу то же самое, выдаёт ошибку:
    A = [[2, 6, 8], [4, 12, 6], [8, 10, 14], [32, 43, 23]]
    for i in range(len(A)):
    for j in range(i + 1, len(A)):
    A[i][j], A[j][i] = A[j][i], A[i][j]
    for r in A:
    for x in r:
    print(x, end='\t')
    print()
    Traceback (most recent call last):
    File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.3\plugins\python-ce\helpers\pydev\pydevd.py", line 1491, in _exec
    pydev_imports.execfile(file, globals, locals) # execute the script
    File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.3\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"
    ", file, 'exec'), glob, loc)
    File "C:/Users/swayt/PycharmProjects/pythonAnton/ex1.py", line 419, in
    for j in range(i + 1, len(A)):
    IndexError: list index out of range
    Может, вы подскажете, что не так, чего я не вижу? Спасибо. Версия Python 3.10.

    • @ФрикДенис
      @ФрикДенис 2 роки тому +1

      У вас матрица не квадратная, и во втором вложенном цикле нужно брать не len(A), a len(A[0]). Но в данной программе это не поможет. Нужна исходно квадратная матрица.

    • @olegkomlev
      @olegkomlev 2 роки тому

      @@ФрикДенис Транспонировать можно и не квадратную матрицу. Но в таком случае может измениться не только содержимое, но и размеры. Так из матрицы 4х3 получится матрица 3х4. Но алгоритм должен быть другой , перестановкой элементов этого не сделать. Вот и получилась интересная задача для начинающих - транспонировать произвольную прямоугольную матрицу.

  • @ibrahimoglu
    @ibrahimoglu 3 роки тому +3

    👍