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

Модуль 9.4 Функция filter.

 Вводятся названия городов в одну строчку через пробел. Необходимо определить функцию filter, которая бы возвращала только названия длиной более 5 символов. Извлеките первые три полученных значения с помощью функции next и отобразите их на экране в одну строчку через пробел. (Полагается, что минимум три значения имеются).

# ввод названий городов в одну строку и применение функции filter для выбора городов длиной более 5 символов
cities = filter(lambda x: len(x) > 5, input().split())

# вывод первых трех городов через пробел
for _ in range(3):
    print(next(cities), end=' ')

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

название_1: вес_1

название_N: вес_N

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

((‘название_1’, ‘вес_1’), …, (‘название_N’, ‘вес_N’))

А, затем, отфильтровать (исключить) все предметы с весом менее 500, используя функцию filter. Вывести на экран список оставшихся предметов (только их названия) в одну строчку через пробел.

P. S. Для считывания списка целиком в программе уже записаны начальные строчки.

# Импортируем модуль sys для работы с входными данными из стандартного потока ввода
import sys

# Читаем все строки из стандартного потока ввода, удаляем лишние пробелы и сохраняем в виде списка
lst_in = list(map(str.strip, sys.stdin.readlines()))

# Создаем кортеж tp из списка lst_in, разбив каждую строку по знаку равенства на две части
tp = tuple(map(lambda s: tuple(str.split(s, sep='=')), lst_in))

# Отфильтровываем кортеж tp, оставляя только элементы, второе значение которых больше или равно 500
f = filter(lambda x: int(x[1]) >= 500, tp)

# Преобразуем полученный результат в генератор, содержащий только первые значения каждого элемента
gen = map(lambda x: x[0], f)

# Выводим элементы генератора, разделенные пробелом
print(*gen)

Вводится список целых чисел в одну строчку через пробел. Необходимо оставить в нем только двузначные числа. Реализовать программу с использованием функции filter. Результат отобразить на экране в виде последовательности оставшихся чисел в одну строчку через пробел.

# Считываем строку с входными данными и разбиваем ее на список, используя метод split()
lst = input().split()

# Фильтруем список, оставляя только элементы, модуль которых больше 9 и меньше 100
lst_out = filter(lambda x: 9 < abs(int(x)) < 100, lst)

# Выводим отфильтрованный список, разделяя его элементы пробелом
print(*lst_out)

Саша и Галя коллекционируют монетки. Каждый из них решил записать номиналы монеток из своей коллекции. Получилось два списка. Эти списки поступают на вход программы в виде двух строк из целых чисел, записанных через пробел. Необходимо выделить значения, присутствующие в обоих списках и оставить среди них только четные. Результат вывести на экран в виде строки полученных чисел в порядке их возрастания через пробел.

При реализации программы используйте функцию filter и кое-что еще (для упрощения программы), подумайте что.

# Читаем две строки ввода, разделяем числа и сохраняем их в списках s1 и s2
s1 = list(map(int, input().split()))
s2 = list(map(int, input().split()))

# Фильтруем список s1, оставляя только четные числа, которые также содержатся в списке s2.
# Затем отфильтрованный список сортируем по возрастанию и сохраняем результат в переменной res.
res = sorted(filter(lambda x: x in s2 and x % 2 == 0, s1))

# Выводим элементы списка res, разделенные пробелом, на экран
print(*res)

Вводится список email-адресов в одну строчку через пробел. Среди них нужно оставить только корректно записанные адреса. Будем полагать, что к таким относятся те, что используют латинские буквы, цифры и символ подчеркивания. А также в адресе должен быть символ «@», а после него символ точки «.» (между ними, конечно же, могут быть и другие символы).

Результат отобразить в виде строки email-адресов, записанных через пробел.

# Определяем функцию is_valid_email, которая принимает email и возвращает True, если email валидный, и False в противном случае
def is_valid_email(email):
    # Приводим email к нижнему регистру и проверяем, что символ "@" встречается до символа "."
    email = email.lower()
    if email.find("@") >= email.find("."):
        return False
    # Проверяем, что все символы в email принадлежат допустимому набору символов
    for i in email:
        if i not in "abcdefghijklmnopqrstuvwxyz1234567890_@.":
            return False
    # Если email проходит все проверки, возвращаем True
    return True

# Читаем строку ввода, разбиваем ее на слова и фильтруем список слов, оставляя только валидные email
valid_emails = filter(is_valid_email, input().split())

# Выводим список валидных email, разделяя его элементы пробелами
print(*valid_emails)

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

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

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