Подборка задач с решениями - 16

  • Категория: Python
  • Дата публикации: 2022-01-10
  • Опубликовано на сайте: Stepik

Задача 1:

Дополните приведенный код, используя генератор, так чтобы получить словарь result , в котором ключом будет позиция числа в списке numbers (начиная с 0), а значением – его квадрат.

Примечание. Выводить содержимое словаря result не нужно.

Код:

numbers = [34, 10, -4, 6, 10, 23, -90, 100, 21, -35, -95, 1, 36, -38, -19, 1, 6, 87]

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {i : j ** 2 for i, j in enumerate(numbers)}

Задача 2:

Дополните приведенный код, используя генератор, чтобы получить словарь result, состоящий из всех элементов словаря colors, кроме тех, у которых значением является None.

Код:

colors = {'c1': 'Red', 'c2': 'Grey', 'c3': None, 'c4': 'Green', 'c5': 'Yellow', 'c6': 'Pink', 'c7': 'Orange', 'c8': None, 'c9': 'White', 'c10': 'Black', 'c11': 'Violet', 'c12': 'Gold', 'c13': None, 'c14': 'Amber', 'c15': 'Azure', 'c16': 'Beige', 'c17': 'Bronze', 'c18': None, 'c19': 'Lilac', 'c20': 'Pearl', 'c21': None, 'c22': 'Sand', 'c23': None}

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {k : v for k, v in colors.items() if v != None}

Задача 3:

Дополните приведенный код, используя генератор, чтобы получить словарь result, состоящий из всех элементов словаря favorite_numbers , значения которых являются двузначными числами.

Код:

favorite_numbers = {'timur': 17, 'ruslan': 7, 'larisa': 19, 'roman': 123, 'rebecca': 293, 'ronald': 76, 'dorothy': 62, 'harold': 36, 'matt': 314, 'kim': 451, 'rosaly': 18, 'rustam': 89, 'soltan': 111, 'amir': 654, 'dima': 390, 'amiran': 777, 'geor': 999, 'sveta': 75, 'rita': 909, 'kirill': 404, 'olga': 271, 'anna': 55, 'madlen': 876}

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {k : v for k, v in favorite_numbers.items() if len(str(v)) == 2}

Задача 4:

Дополните приведенный код, используя генератор, так, чтобы получить словарь result, состоящий из всех элементов словаря months , в которых ключ и значение поменялись местами.

Код:

months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {v:k for k, v in months.items()}

Задача 5:

В переменной s хранится строка пар число:слово. Дополните приведенный код, используя генератор, чтобы получить словарь result , в котором числа будут ключами, а слова – значениями.

Примечание 1. Ключи словаря должны быть целыми числами (иметь тип int), значения – строками (иметь тип str).

Код:

s = '1:men 2:kind 90:number 0:sun 34:book 56:mountain 87:wood 54:car 3:island 88:power 7:box 17:star 101:ice'

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {int(k):v for k, v in [l.split(':') for l in s.split()]}

Задача 6:

Используя генератор, дополните приведенный код, чтобы получить словарь result, где ключом будет элемент списка numbers, а значением – отсортированный по возрастанию список всех его делителей, начиная с 1.

Код:

numbers = [34, 10, 4, 6, 10, 23, 90, 100, 21, 35, 95, 1, 36, 38, 19, 1, 6, 87, 1000, 13456, 360]

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result =  {i:[j for j in [k for k in range(1, i + 1) if i % k == 0]] for i in numbers}

Задача 7:

Дополните приведенный код, используя генератор, так, чтобы получить словарь result, в котором ключом будет строка – элемент списка words, а значением – список соответствующих кодов ASCII символов данной строки.

Код:

words = ['hello', 'bye', 'yes', 'no', 'python', 'apple', 'maybe', 'stepik', 'beegeek']

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result =  {i:[ord(j) for j in i] for i in words}

Задача 8:

Дополните приведенный код, используя генератор, чтобы получить словарь result, состоящий из всех элементов словаря letters, за исключением тех, ключи которых есть в списке remove_keys.

letters = {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K', 11: 'L', 12: 'M', 13: 'N', 14: 'O', 15: 'P', 16: 'Q', 17: 'R', 18: 'S', 19: 'T', 20: 'U', 21: 'V', 22: 'W', 23: 'X', 24: 'Y', 26: 'Z'}

remove_keys = [1, 5, 7, 12, 17, 19, 21, 24]

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {k : v for k, v in letters.items() if k not in remove_keys}

Задача 9:

В переменной students хранится словарь, содержащий информацию о росте (в см) и весе (в кг) студентов.

Дополните приведенный код, используя генератор, чтобы получить словарь result, состоящий из всех элементов словаря students, где указан рост больше 167 см, а вес меньше 75 кг.

students = {'Timur': (170, 75), 'Ruslan': (180, 105), 'Soltan': (192, 68), 'Roman': (175, 70), 'Madlen': (160, 50), 'Stefani': (165, 70), 'Tom': (190, 90), 'Jerry': (180, 87), 'Anna': (172, 67), 'Scott': (168, 78), 'John': (186, 79), 'Alex': (195, 120), 'Max': (200, 110), 'Barak': (180, 89), 'Donald': (170, 80), 'Rustam': (186, 100), 'Alice': (159, 59), 'Rita': (170, 80), 'Mary': (175, 69), 'Jane': (190, 80)}

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {k : (v1, v2) for k, (v1, v2) in students.items() if v1 > 167 and v2 < 75 }

Задача 10:

Список tuples содержит кортежи, состоящие из трех чисел:

    tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12), (13, 14, 15), (16, 17, 18), (19, 20, 21), (22, 23, 24), (25, 26, 27), (28, 29, 30), (31, 32, 33), (34, 35, 36)]

Дополните приведенный код, используя генератор, чтобы получить словарь result, в котором ключом является первый элемент каждого кортежа, а значением – кортеж из оставшихся двух элементов.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = {k : (v1, v2) for (k, v1, v2) in tuples}

Задача 11:

Даны три списка student_ids, student_names, student_grades, содержащие информацию о студентах:

student_ids = ['S001', 'S002', 'S003', 'S004', 'S005', 'S006', 'S007', 'S008', 'S009', 'S010', 'S011', 'S012', 'S013'] 
student_names = ['Camila Rodriguez', 'Juan Cruz', 'Dan Richards', 'Sam Boyle', 'Batista Cesare', 'Francesco Totti', 'Khalid Hussain', 'Ethan Hawke', 'David Bowman', 'James Milner', 'Michael Owen', 'Gary Oldman', 'Tom Hardy'] 
student_grades = [86, 98, 89, 92, 45, 67, 89, 90, 100, 98, 10, 96, 93]

Дополните приведенный код, используя генератор, так чтобы получить список result, содержащий вложенные словари в соответствии с образцом: [{'S001': {'Camila Rodriguez': 86}}, {'S002': {'Juan Cruz': 98}},...].

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

result = [{k1: {k2: v}} for k1, k2, v in zip(student_ids, student_names, student_grades)]

Задача 12:

Дополните приведенный код, чтобы в списках значений элементов словаря my_dict не было чисел, больших 20. При этом порядок оставшихся элементов меняться не должен:

my_dict = {'C1': [10, 20, 30, 7, 6, 23, 90], 'C2': [20, 30, 40, 1, 2, 3, 90, 12], 'C3': [12, 34, 20, 21], 'C4': [22, 54, 209, 21, 7], 'C5': [2, 4, 29, 21, 19], 'C6': [4, 6, 7, 10, 55], 'C7': [4, 8, 12, 23, 42], 'C8': [3, 14, 15, 26, 48], 'C9': [2, 7, 18, 28, 18, 28]}

Решение:

Все решения теперь можно найти в сообществе Как войти в IT my_dict = {key: [i for i in value if i <= 20] for key, value in my_dict.items()}