Модуль 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)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы