Задачи Python, которыми хорошо размяться

Аватарка пользователя Елена Капаца

Собрали для вас задачи на списки Python, чтобы комфортно познакомиться с регулярными упражнениями по програмированию.

Обложка поста Задачи Python, которыми хорошо размяться

Собрали задачи на списки Python, которые могут комфортно добавить к вашим привычкам регулярные упражнения по Python. Если с чего-то и начинать, то пускай поначалу это будет что-то подъемное и комфортное.

В раскрываемых блоках можно посмотреть ответы.

Сортировка по свойству

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

Пример:

			[
   {"а": 1, "б": 3},
   {"а": 3, "б": 2},
   {"а": 2, "б": 40},
   {"а": 4, "б": 12}
]
		

должен стать:

			[
   {"а": 4, "б": 12},
   {"а": 3, "б": 2},
   {"а": 2, "б": 40},
   {"а": 1, "б": 3}
]
		

Значения всегда числа, свойства всегда непустые.

Решение

def sort_list(sort_key, l):

return sorted(l, key=lambda x: x[sort_key], reverse=True)

Классы скалолазов

В скалолазании навыки V/Vermin именуются, начиная с VB (новичок), а затем идут V0, V0+, V1, V2, V3, В4, В5 и т.д. до В17 (эксперт). Вам будет предоставлен список таких оценок. Напишите функцию, возвращающую перечень оценок, отсортированных от самого простого к самому сложному.

Решение

def sort_grades(gs):

return sorted(gs, key=grade)

def grade(v):

if v == ‘VB’: return -2

if v == ‘V0’: return -1

if v == ‘V0+’: return 0

return int(v[1:])

Антигравитационный ящик

Бобу скучно на уроках физики, поэтому он построил себе контейнер для игрушек, чтобы скоротать время. Он особенный и антигравитационный. В нем несколько столбиков игрушечных кубиков, выстроенных в линию. В i-м столбце содержится a_i кубов. Сначала сила тяжести в коробке тянет кубики вниз. Когда Боб переключает гравитацию, он начинает тянуть все к определенной стороне коробки d, которая может быть либо «L», либо «R» (левая или правая). Ниже приведен пример того, как может выглядеть коробка до и после переключения гравитации.

			+---+                                       +---+
|   |                                       |   |
+---+                                       +---+
+---++---+     +---+              +---++---++---+
|   ||   |     |   |   -->        |   ||   ||   |
+---++---+     +---+              +---++---++---+
+---++---++---++---+         +---++---++---++---+
|   ||   ||   ||   |         |   ||   ||   ||   |
+---++---++---++---+         +---++---++---++---+
		

Учитывая исходную конфигурацию, выясните, сколько кубиков окажется в каждом из n столбцов после того, как Боб переключит гравитацию.

Примеры:

			* 'R', [3, 2, 1, 2]      ->  [1, 2, 2, 3]
* 'L', [1, 4, 5, 3, 5 ]  ->  [5, 5, 4, 3, 1]
		
Решение

def flip(d,a):

return sorted(a, reverse=d==’L’)

Слова и их длины

Нам предстоит добавить длину слов, разделенных пробелом, после каждого слова и вернуть ее в виде массива.

Пример:

			"apple ban" --> ["apple 5", "ban 3"]
"you will win" --> ["you 3", "will 4", "win 3"]
		

Напишите функцию, которая принимает строку и возвращает массив / список с длиной каждого слова, добавленного к каждому элементу. В строке будет хотя бы один элемент; слова всегда будут разделены пробелом.

Решение

def add_length(str_):

return [“{} {}”.format(i, len(i)) for i in str_.split(‘ ‘)]

Сколько задач вам удалось решить?
Одну
Две
Три
Все
Посмотреть результат голосования
Python
Навыки
3068