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

Модуль 5.8 Генераторы списков (List comprehension).

Генераторы списков (List comprehension)

list_number = [abs(float(num)) for num in input().split()] # Получаем данные из потока и сохраняем их в переменную перменную
# преобразуем в тип float и сохраняем в списке
print(list_number)

Вводится семизначное целое положительное число. С помощью list comprehension сформировать список lst, содержащий цифры этого числа (в списке должны быть записаны числа, а не строки). Результат вывести на экран список командой:

print(lst)

n = abs(int(input()))   # n <- целое положительное число

# строковое представление числа в качестве итерируемого объекта...
print([int(x) for x in str(n)])

Вводится натуральное число N. С помощью list comprehension сформировать двумерный список размером N x N, состоящий из нулей, а по главной диагонали — единицы. (Главная диагональ — это элементы, идущие по диагонали от верхнего левого угла матрицы до ее нижнего правого угла). Результат вывести в виде таблицы чисел как показано в примере ниже.

# put your python code here
size_matrix = int(input())       # Пользовательский ввод
matrix = [(1 if x == i else 0) for i in range(0, size_matrix) for x in range(0, size_matrix)] # Если x  равна i тогда 
# печатаем 1 иначе 0, дальне циклом заполняем все необходимыми цифрами до заданого пользвателем размера

count = 1                        # Создаю счетчик
for i in matrix:                 # Прохожу по полученному списку
    if count % size_matrix == 0: # Если остаток от деления равен 0 
        print(i)                 # тогда вывожу число без пробела и с переносом на новую строку
    else:
        print(i, end=" ")        # Иначе вывожу с пробелом и оставляю на этой строке
    count += 1                   # Увеличиваю счетчик на 1

# Более правильное решение
# print("----------------------------------------------------------------------------------")
# matrix_2 = [[1 if x == i else 0 for i in range(size_matrix)] for x in range(size_matrix)]
# for i in matrix_2:
#     print(*i)

Вводятся названия городов в строку через пробел. Необходимо сформировать список с помощью list comprehension, содержащий названия длиной более пяти символов. Результат вывести в строчку через пробел.

cites = input().split() # Пользовательский ввод

cites_5_symbols = [city for city in cites if len(city) > 5]  # Сохраняем значение в список если его значение больше 5 символов

print(*cites_5_symbols)

cites = input().split() # Пользовательский ввод

cites_5_symbols = [city for city in cites if len(city) > 5] # Сохраняем значение в список если его значение больше 5 символов

print(*cites_5_symbols)

user_number = int(input()) # Пользовательский ввод
list_number = [num for num in range(1, user_number+1) if user_number % num == 0] # Сохраняем значение в список если
# Остаток от его деления равен 0

print(*list_number)

Вводится натуральное число N. Необходимо сгенерировать вложенный список с помощью list comprehension, размером N x N, где первая строка содержала бы все нули, вторая — все единицы, третья — все двойки и так до N-й строки. Результат вывести в виде таблицы чисел как показано в примере ниже.

# Более правильное решение
size_matrix = int(input()) # Пользовательский ввод

matrix_2 = [[x for i in range(size_matrix)] for x in range(size_matrix)] # Создаем вложенные список и в нем сохраняем
# значение переменой x внешнего списка
for i in matrix_2:
    print(*i)

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

num_list = input().split() # Пользовательский ввод

num_index = [num_list[num] for num in range(0, len(num_list)) if float(num) % 2 == 0] # Выбираю элементы по индексу
# если он идут под четными индексами в списке
print(*num_index)

Вводятся два списка целых чисел одинаковой длины каждый с новой строки. С помощью list comprehension сформировать третий список, состоящий из суммы соответствующих пар чисел введенных списков. Результат вывести на экран в одну строку через пробел.

a, b = [map(int, input().split()) for _ in '12']   # два map-объекта
print(*map(sum, zip(a,b)))                         # применяем sum к кажному tuple, который вернул zip

Вводится список в формате: 

<город 1> <численность населения 1> <город 2> <численность населения 2> … <город N> <численность населения N>

Необходимо с помощью list comprehension сформировать список lst, содержащий вложенные списки из пар:

<город> <численность населения>

Численность населения — целое число в тыс. человек. Вывести результат на экран в виде списка командой:

print(lst)

inp = input().split()                        
inp[1::2] = map(int, inp[1::2])               # превратили в int только числа
lst = list(map(list, zip(*[iter(inp)]*2)))    # кластеризация и map, превращающий tuple в list
print(lst)

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

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

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