Модуль 5.9 Вложенные циклы и вложенные генераторы списков.
Вводится двумерный список в виде таблицы целых чисел (см. пример ниже). С помощью list comprehension преобразовать двумерный список в одномерный так, чтобы значения элементов шли в обратном порядке. Результат отобразить в виде строки из чисел, записанных через пробел.
P. S. Для считывания списка целиком в программе уже записаны начальные строчки.
import sys # считывание списка из входного потока s = sys.stdin.readlines() lst_in = [list(map(int, x.strip().split())) for x in s] # здесь продолжайте программу (используйте список lst_in) [print(*x[::-1],end = ' ') for x in lst_in[::-1]]
Вводится список целых чисел в строку через пробел. С помощью list comprehension сформировать из них двумерный список lst размером N x N (квадратную таблицу чисел). Гарантируется, что из набора введенных чисел можно сформировать квадратную матрицу (таблицу). Результат отобразить в виде списка командой:
print(lst)
list_in = list(map(int, input().split())) size_matrix = int(len(list_in) ** 0.5) # Берм размер матрицы так как она может быть разной извлечения корня дает нам # ровной значения для построение квадрата, int() = оставляет только цело число result = [[list_in[size_matrix * i + j] for j in range(size_matrix)] for i in range(size_matrix)] # Проход цикла с i # нам дает количество вложенных циклов, цикл с j формирует внутренний элементы вложенных циклов, с помощь конструкции # [list_in[size_matrix * i + j] мы получаем индекс по которому будет обращаеться к элементам основного списка print(result)
Используйте следующий список из строк:
t = ["– Скажи-ка, дядя, ведь не даром", "Я Python выучил с каналом", "Балакирев что раздавал?", "Ведь были ж заданья боевые,", "Да, говорят, еще какие!", "Недаром помнит вся Россия", "Как мы рубили их тогда!" ]Необходимо преобразовать его в двумерный (вложенный) список lst, где каждая строка представляется списком из слов (слова разделяются пробелом), но сохранять слова только длиной более трех символов. Решить данную задачу с использованием list comprehension. Результат отобразить с помощью команды:
print(lst)
list_in = ["– Скажи-ка, дядя, ведь не даром", "Я Python выучил с каналом", "Балакирев что раздавал?", "Ведь были ж заданья боевые,", "Да, говорят, еще какие!", "Недаром помнит вся Россия", "Как мы рубили их тогда!" ] result = [[x for x in row.split() if len(x) > 3] for row in list_in] # Начиная с право на лево # 1) Берем строку из основного списка # 2) С помощью row.split() беру каждое слов и если оно больше трех символов сохраняю его print(result)
Повторите задачу с транспонированием прямоугольной матрицы с помощью list comprehension, изложенной в видео-уроке к этой практике. На вход поступает таблица целых чисел, на выходе нужно отобразить эту же таблицу в транспонированном виде (строки заменяются на столбцы), используя команду:
for row in A: print(*row)где A — транспонированный двумерный список. Желательно сделать эту задачу не пересматривая видео.
P. S. Для считывания списка целиком в программе уже записаны начальные строчки.
import sys # считывание списка из входного потока s = sys.stdin.readlines() lst_in = [list(map(int, x.strip().split())) for x in s] result = [[row[i] for row in lst_in] for i in range(len(lst_in[0]))] # В внешнем списке (i) за размер берем длину # одного вложенного цикла, в внутренним берем из каждого вложенного цикла индекс i и сохраняем в наш вложенный список. for row in result: print(*row) # здесь продолжайте программу (используйте список lst_in)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы