Решение модуля 10.3 Инди-курс программирования на Python

Модуль 10.3 (Функция map Python). Функция map используется для применения функции к каждому элементу итерируемого объекта (например, списка или словаря).

Перед вами имеется список numbers, состоящий из целых чисел. Ваша задача преобразовать каждый элемент списка numbers в строку и сохранить полученный результат в новый список strings. Для преобразования используйте map

В качестве ответа выведите переменную strings

numbers = [116, -411, 448, 636, -254, -295, 220, 216, 187, -150, -458, -372, 450, 141, -626, -168, -383, 389, -184, 609, 221, 311, 526, 254, -631, -174, -555, -338, 226, 695, -16, 333, 12, -600, -258, -383, -101, 121, 40, 278, 118, -462, -671, 78, -69, -568, -228, -445, -47, -565]
strings = list(map(str, numbers)) # при помощи функции map каждое число преобразуем в строку
print(strings)                    # выводим преобразованный список со строками

Перед вами имеется список numbers, состоящий из целых чисел. Ваша задача увеличить каждый элемент списка numbers втрое и сохранить полученный результат в новый список increase_3. Для преобразования используйте функцию map

В качестве ответа выведите переменную increase_3

numbers = [116, -411, 448, 636, -254, -295, 220, 216, 187, -150, -458, -372, 450, 141, -626, -168, -383, 389, -184, 609, 221, 311, 526, 254, -631, -174, -555, -338, 226, 695, -16, 333, 12, -600, -258, -383, -101, 121, 40, 278, 118, -462, -671, 78, -69, -568, -228, -445, -47, -565]
increase_3 = list(map(lambda x: x*3, numbers)) # при помощи функции map все числа из списка увеличили втрое 
print(increase_3)                              # выводим список с увеличенными числами

Напишите программу, которая возводит в квадрат и в куб каждое число из списка numbers пользуясь при этом функциями map и lambda.

В результате у вас должно получится два отдельных списка: в одном квадраты, в другом кубы. Их необходимо вывести на экран.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
square = list(map(lambda x: x**2, numbers)) # при помощи функции map в переменную записываем список с квадратами чисел из списка numbers
cube = list(map(lambda x: x**3, numbers))   # при помощи функции map в переменную записываем список с кубами чисел из списка numbers
print(square)                               # выводим список с квадратами чисел
print(cube)                                 # выводим список с кубами чисел

Помните задачку про RGB? Сейчас вам предстоит выполнить обратное преобразование

Ваша задача создать функцию from_hex_to_rgb, которая принимает на вход строку — закодированный код цвета в формате RGB и возвращает кортеж из трех значений (оттенок_красного, оттенок_зеленого, оттенок_синего). Вот посмотрите примеры:

from_hex_to_rgb(#000000) => (0, 0, 0)
from_hex_to_rgb(#FFFFFF) => (255, 255, 255)
from_hex_to_rgb(#FF0000) => (255,0, 0)
from_hex_to_rgb(#00FF00) => (0,255, 0)
from_hex_to_rgb(#0000FF) => (0,0,255)
from_hex_to_rgb(#FFFFFF) => (255,255,255)
from_hex_to_rgb(#87CEEB) => (135,206,235)
from_hex_to_rgb(#87CEFA) => (135,206,250)
from_hex_to_rgb(#191970) => (25,25,112)

Как только функция будет готова, ее необходимо применить ко всем элементам списка colors при помощи функции map. Ниже уже имеется готовый список colors и цикл обхода результата функции map. Добавьте только название функции внутри вызова map, все остальное код сделает за вас.

def from_hex_to_rgb(color: str) -> tuple:
    colo = color[1:]           # избавляемся от символа решётки
    red = int(colo[:2], 16)    # первые 2 символа строки после символа решётки переводим в десятичную систему исчисления
    green = int(colo[2:4], 16) # 3 и 4 символ строки после символа решётки переводим в десятичную систему исчисления
    blue = int(colo[4:], 16)   # последние 2 символа строки после символа решётки переводим в десятичную систему исчисления
    return tuple([red, green, blue]) #возвращаем кортеж с оттенками rgb
colors = ['#B22222', '#DC143C', '#FF0000', '#FF6347', '#FF7F50', '#CD5C5C', '#F08080', '#E9967A',
          '#FA8072', '#FFA07A', '#FF4500', '#FF8C00', '#FFA500', '#FFD700', '#B8860B', '#DAA520',
          '#EEE8AA', '#BDB76B', '#F0E68C', '#808000', '#FFFF00', '#9ACD32', '#556B2F', '#6B8E23',
          '#7CFC00', '#7FFF00', '#ADFF2F']

for red, green, blue in map(from_hex_to_rgb, colors):
    print(f"Red={red}, Green={green}, Blue={blue}")

На вход вашей программе поступают английские буквы через пробел в верхнем или маленьком регистре.

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

Выведите на экран полученный список кортежей.

a = input().split()  # получаем строку с символами и разбиваем на список
b = list(map(lambda i: (i.upper(), i.lower()), a))  # список с символами преобразуем с помощью функции map и вместо каждой буквы образуется кортеж с этой буквой в верхнем регистре и в нижнем
print(b)             # выводим полученный список кортежей

Перед вами имеется список кортежей names. Каждый кортеж состоит из двух элементов: имени и фамилии. Ваша задача на основании списка names создать новый список new_names, где каждый кортеж должен замениться на строку конкатенации имени и фамилии, между которыми стоит пробел . Вот пример на других данных:

names = [('Monica', 'Waters'), ('Juan', 'Lee'), ('Donna', 'Walker')]

new_names = ['Monica Waters', 'Juan Lee', 'Donna Walker']

Для преобразования используйте функцию map

В качестве ответа выведите переменную new_names

names = [('Gerald', 'Tucker'), ('Tricia', 'Johnson'), ('Robert', 'Mendez'),
         ('Shawn', 'Gutierrez'), ('Gary', 'Ross'), ('Melanie', 'Warren'),
         ('Drew', 'May'), ('Jennifer', 'Carroll'), ('Ann', 'Lynn'), ('Ralph', 'Vazquez'),
         ('Brittany', 'Erickson'), ('Mark', 'Montoya'), ('Randall', 'Hicks'),
         ('Tyler', 'Miller'), ('Bryan', 'Brown'), ('Joshua', 'Sawyer'),
         ('Sarah', 'Phillips'), ('Donna', 'Davenport'), ('Rebekah', 'Johnson'),
         ('Andrew', 'Reynolds'), ('April', 'Turner'), ('Amanda', 'Ryan'), ('Jennifer', 'Poole'),
         ('Jonathan', 'Lane'), ('Laura', 'Stone'), ('Sara', 'Brown'), ('Alexander', 'Johnson'),
         ('Emily', 'Phillips'), ('Tyler', 'Smith'), ('Victor', 'Kelly'), ('Audrey', 'Thomas'),
         ('Melissa', 'Green'), ('Bethany', 'Holt'), ('Christopher', 'Kerr'), ('Gabrielle', 'Black'),
         ('Jennifer', 'Wade'), ('Douglas', 'Horton'), ('Steven', 'Welch'),
         ('Terri', 'Thompson'), ('Cassandra', 'Nelson'), ('Andrew', 'Jones'),
         ('James', 'Schultz'), ('Richard', 'Castillo'), ('Shaun', 'Logan'),
         ('Danielle', 'Lane'), ('Mark', 'Anderson'), ('Charles', 'Shaw'),
         ('Derrick', 'Grant'), ('Tracy', 'Pierce'), ('Robert', 'Washington')]
new_names = list(map(lambda x: x[0] + ' ' + x[1], names)) # при помощи функции map берем кортеж и при помощи конкатенации складываем имя и фамилию, добавляя пробел между ними
print(new_names)                                          # выводим список с ФИ людей

Перед вами имеется список словарь persons. Изучите внимательно все элементы списка, у них имеется одинаковый набор ключей. Ваша задача на основании списка persons отобрать информацию о номерах телефона и сложить их в отдельный список phones. Номера в списке phones должны располагаться в том же порядке, в котором расположены их владельцы в списке persons.

В качестве ответа выведите переменную phones

Используйте функцию map

persons = [
    {
        'birthday': '1983-10-25',
        'job': 'Field seismologist',
        'name': 'Andrew Hernandez',
        'phone': '680-436-8521x3468'
    },
    {
        'birthday': '1993-10-03',
        'job': 'Pathologist',
        'name': 'Paul Harmon',
        'phone': '602.518.4130'
    },
    {
        'birthday': '2002-06-11',
        'job': 'Designer, multimedia',
        'name': 'Gregory Flores',
        'phone': '691-498-5303x079'
    },
    {
        'birthday': '2006-11-28',
        'job': 'Print production planner',
        'name': 'Jodi Garcia',
        'phone': '(471)195-7189'},
    {
        'birthday': '2019-12-05',
        'job': 'Warehouse manager',
        'name': 'Elizabeth Cannon',
        'phone': '001-098-434-5950x276'
    },
    {
        'birthday': '1984-06-12',
        'job': 'Visual merchandiser',
        'name': 'Troy Lucas',
        'phone': '+1-018-070-2288x18433'
    },
    {
        'birthday': '1993-09-14',
        'job': 'International aid/development worker',
        'name': 'Laurie Sandoval',
        'phone': '2930693269'
    },
    {
        'birthday': '1999-05-25',
        'job': 'Editor, film/video',
        'name': 'Jack Clark',
        'phone': '8643048473'
    },
    {
        'birthday': '1985-09-11',
        'job': 'Magazine journalist',
        'name': 'Kimberly Johnson',
        'phone': '+1-583-428-7663'
    },
    {
        'birthday': '1990-10-07',
        'job': 'Museum/gallery curator',
        'name': 'Austin Liu PhD',
        'phone': '714-879-5250'
    }
]
phones = list(map(lambda x: x['phone'], persons)) # при помощи функции map мы в список добавляем значение по ключу phone в каждом из словарей
print(phones)                                     # выводим полученный список с номерами

Имеется три списка из 50 элементов: list_xlist_y и list_w

Ваша задача произвести научные расчеты для соответствующий значений этих списков. Нужно подставить в формулу

x^2-x*y*w + w^4x2−xyw+w4

поочередно первые значения из списков list_xlist_y и list_w, потом вторые, затем третьи и т.д.  Значения из списка list_x должны подставляться в переменную x, из списка list_y — в переменную y и из списка list_w — в переменную w.

Всего должно получиться 50 вычисленных значений. Их необходимо сложить в список и вывести на экран. 

list_x = [25, 48, 23, 13, -18, -10, -3, 16, 2, -12, 20, -14, 14, 45, 41, 6, 11, 15, 22,
          -14, -11, 41, 15, 48, 47, 41, -8, 1, 4, 1, 40, 27, -11, -2, -14, -15, 35, 4,
          49, 4, 5, 13, 50, 35, -3, 3, 30, -11, 7, 12]

list_y = [-9, 17, 41, 47, -5, -10, -5, 13, 31, -11, 37, 9, 46, 27, -1, 36, 32, 23, -12,
          38, 8, 9, 17, 16, 29, -4, 4, 2, 1, 46, 6, 49, -16, 21, -19, -10, 15, -13, 20,
          13, -18, 21, -17, 21, 10, 5, 38, -1, 18, 22]

list_w = [9, -26, 3, 21, 48, -14, 43, -4, -16, 16, 41, 43, -27, -9, 10, -10, 4, -2, 1,
          7, 30, -29, 11, 17, 31, 31, -26, 38, 38, -17, 35, 17, 35, 10, -25, 42, -30,
          -10, -20, 20, 15, 0, 29, -30, -21, -13, -27, -21, -18, -26]
res = list(map(lambda x, y, w: x**2 - x*y*w + w**4, list_x, list_y, list_w)) # при помощи функции map берём по очереди сразу из трех списокв числа и подставляем в формулу, результат которой добавляем в наш список
print(res)     # выводим список с результатами

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

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

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