БастыАудиоКомикстерБалаларға арналған
Роман Г.
Роман Г.дәйексөз келтірді1 ай бұрын
def sorting_two(A): return tuple(sorted(A, reverse=True)[:2]) ❶ def double_two(A): my_max = max(A) ❷ copy = list(A) copy.remove(my_max) ❸ return (my_max, max(copy)) ❹ def mutable_two(A): idx = max(range(len(A)), key=A.__getitem__) ❺ my_max = A[idx] ❻ del A[idx] second = max(A) ❼ A.insert(idx, my_max) ❽ return (my_max, second) ❶ Создать из A новый отсортированный список и вернуть первые два его элемента. ❷ Использовать встроенную функцию max() и найти максимум. ❸ Создать дубликат списка A и удалить из него этот максимум. ❹ Вернуть кортеж из сходного максимума и максимума в урезанной копии. ❺ Трюк Python, который позволяет найти индекс наибольшего значения, а не само наибольшее значение. ❻ Запомнить максимум my_max и удалить его из A. ❼ Найти еще один max() в усеченном списке. ❽ Вставить максимальное значение my_max на место. Трюк ❺ работает так. Как и все операции с объектами в Python, операция индексирования (то есть квадратные скобки) имеет эквивалентный ей метод — .__getitem__(). Параметр key=функция в функции max(последовательность) означает, что максимум будет вычисляться не в исходной последовательности элемент0, элемент1…, а в последовательности функция(элемент0), функция(элемент1)…, а в качестве результата функция вернет некоторый элементm. В нашем примере элементы — это 0, 1… m… len(A)-1, то есть индексы всех объектов в A, а максимум вычисляется среди A.__getitiem__(0), A.__getitiem__(1)…, то есть среди A[0], A[1]…, а возвращается при этом индекс m.
Алгоритмы. С примерами на Python
Алгоритмы. С примерами на Python
·
Джордж Хайнеман
Алгоритмы. С примерами на Python
Джордж Хайнеманжәне т.б.
7.4K

Кіру не тіркелу пікір қалдыру үшін