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

  Рет қаралды 219,870

egoroff_channel

egoroff_channel

Күн бұрын

Пікірлер: 322
@egoroffchannel
@egoroffchannel 8 ай бұрын
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
@СаняПушкин-ц4о
@СаняПушкин-ц4о 4 жыл бұрын
Спасибо за видео . учу питон уже месяц . благодаря вам стал ощущать себя намного тупее чем раньше )
@ZaeBalAndreevych
@ZaeBalAndreevych 4 жыл бұрын
Так тебе помогло видео или нет?
@ИльяЕнот-з6с
@ИльяЕнот-з6с 4 жыл бұрын
хаахахахахахахаха
@СаняПушкин-ц4о
@СаняПушкин-ц4о 4 жыл бұрын
@@ZaeBalAndreevych да , лучший канал
@АндрейБудкин-ф5щ
@АндрейБудкин-ф5щ 4 жыл бұрын
@@СаняПушкин-ц4о и как уже успехи в изучении ? Стал джуном ?
@СаняПушкин-ц4о
@СаняПушкин-ц4о 4 жыл бұрын
@@АндрейБудкин-ф5щ ну смотря что считать джуном , на работу еще не берут, но какйнибудь сайт или скрипт небольшой написать могу. Сейчас на джуна требования как на синьера
@ВалерияМалышева-ь1в
@ВалерияМалышева-ь1в 4 жыл бұрын
Спасибо огромное! Прочитала разные объяснения на форумах про вложенные списки, но ваше самое понятное и доступное:) Рада быть спонсором вашего канала. У вас качественный контент.
@egoroffchannel
@egoroffchannel 4 жыл бұрын
спасибо, очень приятно)
@Mininavel
@Mininavel Жыл бұрын
спасибо за уроки. Пересмотрела много видео про вложенные списки, поняла наконец, по вашему объяснению. Наглядно и понятно! Спасибо огромное. 2 недели изучаю, но застряла на вложенных циклах, как-то трудно было представить, а тут всеп понятно. Благодарю!
@Cahdro
@Cahdro Жыл бұрын
Такая же ситуация, застрял)) Материал очень хорошо изложен, спасибо автору.
@elenalevasheva3830
@elenalevasheva3830 Жыл бұрын
Спасибо за урок, отличный материал и подача. Без суеты, без спешки и все понятно. Супер
@ДмитрийШимин-ы6с
@ДмитрийШимин-ы6с 5 жыл бұрын
Артем, СПАСИБО огроменное за проделанную работу! Только благодаря Вашим доходчивым словам Пайтон дается легко и просто :)
@standvik1159
@standvik1159 4 жыл бұрын
нет
@youtubecrowd8104
@youtubecrowd8104 Жыл бұрын
Ну не легко, но намного проще чем могло бы быть
@dimaan29
@dimaan29 5 жыл бұрын
Эта тема про матрицы сложнее даже, чем функции))))
@m_i_r_k
@m_i_r_k Жыл бұрын
А как насчёт dataframe-ов?)
@arti5946
@arti5946 3 ай бұрын
Ну как спустя 4 года? Освоили ?
@markjones1878
@markjones1878 2 жыл бұрын
коротко и без воды. супер. Спасибо за труд.
@ФдрФфф
@ФдрФфф 2 жыл бұрын
13:35 заполнение вложенного списка с клавиатуры. Используется дополнительный временный список, для хранения элементов одной строки. А потом за один раз всю эту строку добавляем в основной список. Очень понятно видео, спасибо.
@ВладимирГлазырин-ж1щ
@ВладимирГлазырин-ж1щ 3 жыл бұрын
Первое просмотренное видео на канале. После 5 минут захотелось поставить лайк. Грамотное объяснение и сопровождение!
@EvgeshaFromUa
@EvgeshaFromUa 4 жыл бұрын
Большое спасибо, ваша подача + нормальное объяснение дает возможность понять что такое вложенные списки и как с ними работать! По моему мнению это видео одно из лучших для начального ознакомления со вложенностями!
@jonnash1683
@jonnash1683 2 жыл бұрын
Самые подробные видео из всех, что встречал на ютубе. Спасибо вам большое
@natsudragnil1041
@natsudragnil1041 2 жыл бұрын
очень доволен этим уроком, очень хорошо объясняете, удачи вам во всех начинаниях!
@ArtLvl-y1o
@ArtLvl-y1o 5 жыл бұрын
Благодаря тебе я выучил питон и теперь легко даются другие языки. Спасибо за это огромное
@barbi8271
@barbi8271 3 жыл бұрын
Здравствуйте. За сколько вы выучили?
@ArtLvl-y1o
@ArtLvl-y1o 3 жыл бұрын
@@barbi8271 за год не постоянных тренировок в этой сфере
@barbi8271
@barbi8271 3 жыл бұрын
@@ArtLvl-y1o я уже все. Ничего не хочу
@yatanai5685
@yatanai5685 3 жыл бұрын
@@barbi8271 Не сдавайся! Мы тупенькие, но упорные! В этом нужно просто постоянно вариться!
@ohkennyyyy
@ohkennyyyy 3 жыл бұрын
@@barbi8271 Не повторяй моих ошибок.Лучше не забрасыв учёбу
@Avtoinstryktor_Yaroslav
@Avtoinstryktor_Yaroslav Жыл бұрын
спасибо за урок ! это уже какой то новый уровень! буду осваивать! Спасибо за ваши труды!
@tbbtbs
@tbbtbs 2 жыл бұрын
Огромное спасибо вам за ваши уроки! Благодаря вам я начал понимать в языке и теперь занимаюсь по вашим видео
@olejka6762
@olejka6762 3 жыл бұрын
Отличный видеоурок, очень хорошее объяснение. Не понимал как работать с диагональю, а теперь есть хотя бы представление. Спасибо
@БактыбергенУрекешов-с5з
@БактыбергенУрекешов-с5з 2 жыл бұрын
Бро ты лучшее всех!!! Такому материала не ожидать. Молодец
@tsypoetry
@tsypoetry 6 ай бұрын
Дай бог тебе здоровья, автор!!!)
@ulanulan7739
@ulanulan7739 6 ай бұрын
Благодарю вас за труд
@АлексейНосиков-т4м
@АлексейНосиков-т4м Жыл бұрын
После этой темы уже можно сделать небольшую игру или первую настоящую программу )))))Большое спасибо
@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)
@vika-sole
@vika-sole 2 жыл бұрын
Все супер объяснили!! Огромная благодарность!
@ilyalitvinenko
@ilyalitvinenko 4 жыл бұрын
Артем, большое спасибо за твой труд. Отличная подача материала. 5+
@egoroffchannel
@egoroffchannel 5 жыл бұрын
Разбор задач Транспонирование 2 - kzbin.info/www/bejne/h5fUlKSbideGiJI Сумма главной диагонали kzbin.info/www/bejne/farZp6Zvgdmlb7M Симметричная ли матрица - kzbin.info/www/bejne/gHbYZaJ8aNFqrZY Красивая матрица - kzbin.info/www/bejne/bIW7pXuant6sedE Сумма матриц - kzbin.info/www/bejne/ppO0ZZirlJ52adU Подарок для Лены - kzbin.info/www/bejne/j4TUi6CCp56oqdU Спираль kzbin.info/www/bejne/o3m3fpiVhplgjtE Морской бой 2 kzbin.info/www/bejne/eHKcq6Ccht6ZmtE Состязания-3 kzbin.info/www/bejne/laXdgHh4d6uegNU
@TordMattias
@TordMattias 4 жыл бұрын
Вам следует закрепить этот комментарий
@дмитрийСЕРГЕЕВ-м5ч
@дмитрийСЕРГЕЕВ-м5ч 3 жыл бұрын
Хорошее оъьяснение, но с первого раза мало что понял.Только начало.,Будем смотреть еще и еще раз!
@ДмитрийУстюжанин-ф9у
@ДмитрийУстюжанин-ф9у 3 жыл бұрын
Спасибо все очень понятно. Усвоил то что до этого не мог понять! Лайк поставил! И подписался.
@adikosh667
@adikosh667 2 жыл бұрын
мужик, ты лучший, лучше обьясняешь чем наш препод в универе
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov 2 жыл бұрын
Артём, благодарю! 👍 🔥🔥🔥
@Huskyserge
@Huskyserge 3 жыл бұрын
спасибо за лекцию, жаль выбрал не ваш курс на степике!
@Серёга-у8е
@Серёга-у8е 9 ай бұрын
Огромное спасибо!!!
@ilianrosstmstudios7767
@ilianrosstmstudios7767 4 жыл бұрын
гайсы, я тут немного экспериментировал во время видео, и обнаружил что если вместо новой инициализации списка 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]] >>>
@serhiisvyst4489
@serhiisvyst4489 4 жыл бұрын
Огромное спасибо за видео. Вопрос. 12:00. range(3) и range(4). Как они понимают что есть столбец а что есть строка. Само определяет где есть такая длина? Спасибо
@ArseniyBendyukov
@ArseniyBendyukov 4 жыл бұрын
Вложенные списки - это строки, которые в видео индексируются [ i ]. А из-за того, что они являются элементами главного списка, то и индексируются в первую очередь. Столбцы составляются из элементов вложенных списков (строк) с одинаковыми индексами. Поэтому, т.к. столбцы состоят из элементов вложенных списков, то и индексируются они вторыми. В видео использовали индексацию столбцов [ j ]. Вообще, использовать "i" и "j" в циклах - это своеобразное негласное правило в программировании. Думаю, ответ исчерпывающий :)
@serhiisvyst4489
@serhiisvyst4489 4 жыл бұрын
@@ArseniyBendyukov Да. Спасибо!
@huji-d4t
@huji-d4t 4 жыл бұрын
@@ArseniyBendyukov чувак, я полностью скопировал код, и он у меня почему то не работает
@ahil7800
@ahil7800 4 жыл бұрын
@@serhiisvyst4489 Не верный ответ. Просто после циклов он пишет print a[i][j]. Соответственно и выводится так - i первый индекс - номер строки, j - второй индекс - номер столбца. А как вы эти переменные назовёте это не важно. Важно что вы запросите на печать
@СтаниславРедин
@СтаниславРедин 2 жыл бұрын
Огромное спасибо за этот урок
@alex_pure
@alex_pure 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 жыл бұрын
Спасибо. Полезный материал
@Shark_23_7
@Shark_23_7 2 жыл бұрын
Спасибо вам,не такая сложная тема,главное не вставать пока не поймёшь
@galinaoliver5624
@galinaoliver5624 2 жыл бұрын
спасибо спасибо спасибо!
@romankondratyev4080
@romankondratyev4080 Жыл бұрын
Очень круто!
@obsi1019
@obsi1019 Жыл бұрын
ТОПОВЫЙ КУРС!
@nikeopg
@nikeopg 2 жыл бұрын
лайк! очень годно :)
@Uni-Pablo
@Uni-Pablo Жыл бұрын
Спасибо.
@jenyshirokovaa
@jenyshirokovaa 4 жыл бұрын
Спасибо огромное!Все просто и понятно👏
@vanyavasya6685
@vanyavasya6685 5 жыл бұрын
всё очень понятно, спасибо за уроки
@aidartimerbayev9600
@aidartimerbayev9600 5 жыл бұрын
Большое спасибо! Нашел много интересного и полезного для себя.
@felipe3910
@felipe3910 4 жыл бұрын
Спасибо!
@shutka80
@shutka80 5 ай бұрын
Самое доступное объяснение про матрицы. Но как вижу реальную задачу на создание матриц без определенного количества строк и столбцов, то у меня ступор. То есть вводится произвольное число значений и после этого из этого числа надо создать прямоугольную матрицу!
@beecont9187
@beecont9187 4 жыл бұрын
Большое спасибо я на конец то понял эту тему
@user-qg6ro9dk9g
@user-qg6ro9dk9g Жыл бұрын
Thank you
@erhundvimmbseowde2918
@erhundvimmbseowde2918 Жыл бұрын
Видео этого канала как буст на ускорение разработки первого скрипта, начинающего програмистера)
@ПетрБудников-х5о
@ПетрБудников-х5о 6 жыл бұрын
спасибо за видео, жду продолжения
@TimTim-jk1yu
@TimTim-jk1yu 4 жыл бұрын
То, как я решил задачу "Спираль" /---------------------------------- 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()
@maltamagistro
@maltamagistro 3 жыл бұрын
4:41 - а почему списки запринтились тоже с переносами на новую строку??
@MrMirror369
@MrMirror369 Жыл бұрын
Слишком быстро. Но, контент, очевидно полезнейший.
@OGmirro
@OGmirro 4 жыл бұрын
Легкий способ научиться рисовать сову. 1. Рисуем круг - это будет голова совы. 2. Рисуем овал впритык к кругу - это будет тело совы. 3. Рисуем остальную сову. Примерно так я понимаю это видео)))
@Марина-з4у6д
@Марина-з4у6д 3 жыл бұрын
Cпасибо
@Faritech318
@Faritech318 5 жыл бұрын
и подписался, и лайк нажал, и колокольчик жмякнул, и коммент оставил. очень интересно подано и разжевано.
@RaiFuL92
@RaiFuL92 Жыл бұрын
6:50, не снизу вверх, а сверху вниз
@dimaan29
@dimaan29 5 жыл бұрын
Нет ни слова про определитель матрицы. Хорошо, что есть Numpy)))
@Dayplaylist
@Dayplaylist 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)
@ТоликКнязев-х8ю
@ТоликКнязев-х8ю Жыл бұрын
Можно пожалуйста разобрать последнюю задачу, заполнение матрицы
@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) - нет
@MrGadenysh86
@MrGadenysh86 4 жыл бұрын
Разберите, пожалуйста для спонсоров эту задачу: Вам нужно посчитать сумму элементов двумерного квадратного (NxN) списка, которые расположены на главной диагонали. Программа сперва принимает на вход число N (N
@egoroffchannel
@egoroffchannel 4 жыл бұрын
Ок
@egoroffchannel
@egoroffchannel 4 жыл бұрын
а ссылку на задачу можно?
@MrGadenysh86
@MrGadenysh86 4 жыл бұрын
А всё, смог сам)
@egoroffchannel
@egoroffchannel 4 жыл бұрын
блин, я только вот сегодня сделал kzbin.info/www/bejne/farZp6Zvgdmlb7M
@ГерманРыков-ъ6в
@ГерманРыков-ъ6в 4 жыл бұрын
Эхэхэх из уважения к потраченным деньгам не буду называть платный курс, который дз все от сюда взял (ну или очень похоже), а также вообще эту тему не раскрыл. Четко как чичётка спасибо автору.
@ГерманРыков-ъ6в
@ГерманРыков-ъ6в 4 жыл бұрын
Реально круто, прошу рассмотреть возможность рассказать автору о себе, Ваш труд очень интересен.
@egoroffchannel
@egoroffchannel 4 жыл бұрын
да я что то стисняюсь камеры)
@Serhii_Tereshchuk
@Serhii_Tereshchuk 5 жыл бұрын
Блин ... со спиралью реально жесть ... так и не додумался. И еще непонятки с таблицой умножения ... вроде как решил, для не очень больших отлично работает, но как быть с огромными таблицами? Сайт бракует через превышение лимита по времени ... ну не удивительно ... если таблица 100000 х 100000 и найти там числа 1000000000. Как то тут наверное метод с вложеными списками не очень подходит.
@ilyaivanenko4488
@ilyaivanenko4488 5 жыл бұрын
В задаче Таблица умножения вложенные списки использовал для хранения делителей числа 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 5 жыл бұрын
вот разбор спирали kzbin.info/www/bejne/o3m3fpiVhplgjtE
@killerkey1814
@killerkey1814 5 жыл бұрын
а вот тут становится сложнее просто смотришь на программу и не понимаешь почему так, было бы сдорово если бы вы объясняли эти нюансы.
@ЭдСуровый-ъ1р
@ЭдСуровый-ъ1р 4 жыл бұрын
Могу дать совет. Напишите такую же программу в PyCharm и с помощью команды Debug понаблюдайте за каждым действием программы. Тогда все становится намного понятнее
@ВалерийБаталов-б7ь
@ВалерийБаталов-б7ь 5 жыл бұрын
Как же это сцуко элегантно!!!
@АлексейГоман-у7ф
@АлексейГоман-у7ф 5 жыл бұрын
Большое спасибо!очень доходчиво и просто
@vadiculus5892
@vadiculus5892 4 жыл бұрын
Спасибо бро ну тема очень тяжелая
@KV1NZ11
@KV1NZ11 2 жыл бұрын
Спасибо за материал. Очень подробно и понятно! Автор молодчина. Только почему в конце матрица не сработала, когда число строк стало 5?. Первая цифра 3 (индекс 0,0), а должна быть 10(а она с индексом 0,1 уже получается). Или я что то не понял?
@Денис-э8ш4г
@Денис-э8ш4г Жыл бұрын
Все правильно, первая 10, просто быстро листает
@ilyalitvinenko
@ilyalitvinenko 4 жыл бұрын
Артем, подскажите, пожалуйста, почему при выводе строк в обратном порядке, в цикле for i range(2, -1, -1) вы пишите вторым элементом -1, если нужен обход но ноля. (откуда идем, до куда идем, с каким шагом), не понял почему там -1. Спасибо!
@egoroffchannel
@egoroffchannel 4 жыл бұрын
я о том, как функция range работает в отдельном видео рассказывал kzbin.info/www/bejne/b3uTl6l8adBnfJY
@ilyalitvinenko
@ilyalitvinenko 4 жыл бұрын
@@egoroffchannel Точно, -1 не включая это число, то есть до ноля. Спасибо!
@andreygrishin936
@andreygrishin936 3 жыл бұрын
Товарищи, подскажите, просмотрев все видео, кроме спонсорских можно на основании полученных знаний поменять строки местами? Не могу решить задачу красивая матрица. Ответ знаю, что максимум за 4 раза можно в центр поместить однерку при условии, что она в одном из углов. А как менять строки в ту или другую сторону не могу додуматься. Кода не жду, хотя бы направление куда двигаться исходя из пройденных курсов без всяких matrix и пр. Того чего ещё не было. Дело принципа. Мысль такая ещё, что строка это индекс i списка и соответственно поменять строки это поменять значения под данным индексом. Т.е. я должен обойти строку идентифицировать в этой строке 1, если она есть то поменять следующую строку с текущей ( если в индексах то а[i] на а[i+1]) Пока пишу мысль развивается...может нужен промежуточный список, куда складывать данные...
@pavelsnizhko1146
@pavelsnizhko1146 6 жыл бұрын
давайте видео по List Comprehensions пожалуйста, а то знаю немного с++ а преподаватель мой питоновский гамнокод не принимает(
@egoroffchannel
@egoroffchannel 6 жыл бұрын
про генераторы списков,я правильно понял?) если о них речь, то сперва мне надо про функции видео снять
@pavelsnizhko1146
@pavelsnizhko1146 6 жыл бұрын
egoroff_channel хорошо будем ждать спасибо за старание )
@4etvero4ka90
@4etvero4ka90 4 жыл бұрын
Даладно и вот это 7:00 я искал пол дня что бы сделать формулу для линейной алгебры и в итоге не нашёл и решил повторить синтаксис.
@shamanart456
@shamanart456 Жыл бұрын
на середине видео я перестала понимать что происходит и кто я...
@ДмитрийГвоздев-и7ц
@ДмитрийГвоздев-и7ц 4 жыл бұрын
а можно вопрос, вы показали как обращаться к числам в списке, а как их выборочно выводить?
@vlogofjb
@vlogofjb 4 жыл бұрын
В соответствии с индексом элемента?
@ArseniyBendyukov
@ArseniyBendyukov 4 жыл бұрын
Смотря что вы хотите вывести... Если только 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 ] Как видим, в вырезках второй элемент, который определяет до какого элемента вырезать, не включается в саму вырезку.
@РоманМомотов-ш9й
@РоманМомотов-ш9й 4 жыл бұрын
подскажите условие if для вывода обратной диагонали матрицы, пробовал что то вроде: if i == -j: или даже if i ==(-j-1): ны работаэт =(
@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]) код не принимает сайт,вроде все верно
@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 жыл бұрын
Генераторы списков посмотри видео
@El3m3nTik
@El3m3nTik 6 жыл бұрын
А можно ли изменять букву которую мы вытащили из списка например : a[1][0].upper() , если да то как сделать первую заглавную букву?
@egoroffchannel
@egoroffchannel 6 жыл бұрын
У строк есть метод capitalize(). Он так раз делает первую букву заглавной, все остальные маленькие
@АнтонМеренков-р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 жыл бұрын
kzbin.info/www/bejne/ppO0ZZirlJ52adU
@ЛарсФордевинд
@ЛарсФордевинд 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", т.е выхода за пределы списка, перебираем значения, не включая последнее как по строкам, так и по столбцам.
@МатвейЛ-х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
@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# и поэтому все это вводит слегка в ступор, так как там проще работать с индексами. Прошу если что пояснить/объяснить
@davyedigaryan7610
@davyedigaryan7610 4 жыл бұрын
Спасибо за помащ
@kristyatatarinceva
@kristyatatarinceva Жыл бұрын
Здравствуйте! Возможно мне не ответят, но информацию все равно найти не могу. Объясните пожалуйста, как без ввода значений элементов I и j, через range , функция понимает что I это строка, а j это столбец. И при перемене местами( где j мы ставим в первом цикле, а I в вложенном) python все равно считывает j как столбец, а не строку? При этом если ввести квадратную матрицу, функция тоже понимает где I это строка, j столбец. Спасибо за уроки.
@Курск-г2ч
@Курск-г2ч Жыл бұрын
Значение в print смотрите, которое местами не меняется поэтому при перемене местами i и j сначала выводится индекс вложенного цикла потом внешнего.
@БактыбергенУрекешов-с5з
@БактыбергенУрекешов-с5з 2 жыл бұрын
15:24 я тут шоке так можно было
@C0oo1D
@C0oo1D 6 жыл бұрын
Не могу не добавить List Comprehensions и тернарные ифы к последнему примеру в видео. Никогда не любил многострочные блоки, если можно сократить) Читаемость правда падает, + особенности порядка for в List Comprehensions новичков путает.. Но то дело привычки) Эти 3 строки делают тоже самое, что и 14 строк из последнего примера, разве что нулями список не заполняется, а сразу нужными значениями: n = int(input()) a = [[10 if i==j else 3 if i>j else 5 for j in range(n)] for i in range(n)] [print(i) for i in a]
@СемёнКлюкенко
@СемёнКлюкенко 4 жыл бұрын
Здравствуйте,а как можно вложенные списки преобразовать в кортежи отдельные,чтоб 1 вложенный список стал кортежом,второй и тд?
@amll2049
@amll2049 4 жыл бұрын
Можно через цикл/ генератор списков преобразовать каждый подмассив основного массива. 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]
@kuzmichok8980
@kuzmichok8980 4 жыл бұрын
Лучший
@pashalyk9481
@pashalyk9481 4 жыл бұрын
11:41 как найти суму всех чисел в списке?
@platon942
@platon942 4 жыл бұрын
a = [1, 2, 3, 4] print(sum(a))
@psy-reshetnikov
@psy-reshetnikov 4 жыл бұрын
Когда мы чисто механически меняем местами "for i in... " на "for j in..." как программа понимает, что мы ей говорим идти по столбцам, а не по строкам? У меня этот вопрос возник, сразу по ходу урока, потом пытался найти ответ, но не нашел. В примере количество элементов в строке и столбцах разное и возможно поэтому питон понимает по какому ренжу идти. А если будет одинаковое??? Две совершенно одинаковые строчки поменяли местами и что???
@egoroffchannel
@egoroffchannel 4 жыл бұрын
Смотри предыдущий урок про вложенные циклы
@psy-reshetnikov
@psy-reshetnikov 4 жыл бұрын
@@egoroffchannel Доехал) Спасибо!
@ymnop9652
@ymnop9652 4 жыл бұрын
@@psy-reshetnikov Не могли бы вы объяснить?
@psy-reshetnikov
@psy-reshetnikov 4 жыл бұрын
@@ymnop9652 Пересматривал, вникал, конспектировал прямо в IDLE и въехал. В беседе бы объяснил, пожалуй., а в переписке нет, не смогу,
@ymnop9652
@ymnop9652 4 жыл бұрын
Так понял, смотрите для простоты понимания давайте уйдём от абстрактных 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] т.к это не имеет смысла и сводит все перемены циклов на нет. Надеюсь хоть одному человеку мой комментарий поможет.
@рассольник-ы1ж
@рассольник-ы1ж 4 жыл бұрын
боже спасибо
@alexw2074
@alexw2074 3 жыл бұрын
print a[i][j] Выходит ошибка 'list indices must be integers or slices, not list". Может кто пояснить? Делал пошагово, как в видео.
@EdgeOfDoom
@EdgeOfDoom 4 жыл бұрын
очень круто обьяснил , спасибо !
@ЛарсФордевинд
@ЛарсФордевинд 4 жыл бұрын
С "фотографией Брейна" почему-то таких проблем нет: n = int(input()) m = int(input()) a = [] for i in range(n): b = [] for j in range(m): b.append(input()) a.append(b) for i in a: print(i) h = 0 for i in range(n): for j in range(m): if a[i][j] == "C" or a[i][j] == "Y" or a[i][j] == "M": h = h + 1 elif a[i][j] == "W" or a[i][j] == "G" or a[i][j] == "B": continue else: print("Wrong color has been found: ", a[i][j]) if h > 0: print("#Color") else: print("#Black")
@kirillusenko
@kirillusenko 4 жыл бұрын
h += 1*
@cachatt
@cachatt 4 жыл бұрын
А как 2д список преобразовать в 1д?
@Shumtakatak
@Shumtakatak 3 жыл бұрын
from functools import reduce reduce(lambda x,y: x+y, n)
@Shumtakatak
@Shumtakatak 3 жыл бұрын
n -> список
@ДємянВ
@ДємянВ 4 жыл бұрын
Хм я всё понял,вчера читал в книге сегодня наткнулся на урок-всё чётко
@keramak
@keramak 4 жыл бұрын
Не скажите название книгу?
@ДємянВ
@ДємянВ 4 жыл бұрын
@@keramak Марк Лутс,Изучаем Пайтон. 5е издание.1часть
@keramak
@keramak 4 жыл бұрын
@@ДємянВ спасибо
@moisad1
@moisad1 4 жыл бұрын
хотел на отладке посмотреть но она при запуске выдает это pydev debugger: process 6388 is connecting Connected to pydev debugger (build 193.6911.25)
@egoroffchannel
@egoroffchannel 4 жыл бұрын
все нормально, говорит что процесс отладки запущен ниже этих слов вводи свои значения
28 Вложенные циклы Python
16:45
egoroff_channel
Рет қаралды 112 М.
🎈🎈🎈😲 #tiktok #shorts
0:28
Byungari 병아리언니
Рет қаралды 4,5 МЛН
ВЛОГ ДИАНА В ТУРЦИИ
1:31:22
Lady Diana VLOG
Рет қаралды 1,2 МЛН
31 Множества в Python. Тип данных set
18:15
egoroff_channel
Рет қаралды 124 М.
18 Цикл while Python
12:43
egoroff_channel
Рет қаралды 261 М.