Решение модуля 5.9 Добрый, добрый Python

Модуль 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)

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x