Найти тему
Практика Python

Решение практической задачи № 4

Условие: «Дан список, содержащий целые нечетные числа . Все числа кроме одного – одинаковы. Написать функцию, принимающую этот список и возвращающую то самое не одинаковое число»

Решение № 1.

Используем встроенный метод списков - .count(). Он позволяет подсчитать вхождения в списке.

Перебираем в цикле значения элементов списка. Как только находим элемент, значение которого, всего одно в списке – возвращаем это значение.

Решение с помощью .count()
Решение с помощью .count()

Решение № 2.

Логический способ решения задачи. С помощью метода .sort() сортируем полученный функцией список. Теперь у нас искомое число будет либо первым либо последним в списке. Причем если первый элемент списка равен второму, то оно будет последним. Теперь оформляем это в коде.

 .sort()  и логический подход
.sort() и логический подход

Метод .sort() и функция sorted() подробно описаны в решении задачи № 3.

Решение № 3.

С помощью функции mode() из модуля математической статистики statistics. mode() возвращает наиболее часто встречающееся значение в списке.

Далее – ищем элемент, который не равен, тому, что вернет mode() - это то, что нам нужно.

Решение с помощью .mode() из модуля математической статистики statistics
Решение с помощью .mode() из модуля математической статистики statistics

Решение № 4.

В этом решении мы будем использовать функцию min(). Как понятно из названия, эта функция возвращает минимальное значение. Ей можно передавать как один объект, так и несколько однотипных объектов. Кроме того, ей непосредственно можно передать в качестве аргументов множество чисел. Например, если ей передать список x = [4,9,3,0]:

min (x)

она вернет 0

Кроме того, ей можно передать необязательный именной параметр key, которому может быть присвоена какая-нибудь встроенная одноаргументная функция или метод. Эта функция или метод должны выполнить предварительные действия со списком. Написано мудрено, но на практике все намного проще и сейчас вы в этом убедитесь.

min (user_list, key=user_list.count)

Подставляем в качестве ключа метод .count(). Поэтому функция min() вернет элемент с минимальным количеством вхождений.

Решение с помощью функции min() и метода .count()
Решение с помощью функции min() и метода .count()

В Python имеется и функция max(). Она возвращает максимальное значение.

У этой задачи есть как минимум еще 3-4 варианта решений, но слишком хорошо - это уже плохо. Если у Вас, уважаемый читатель, есть более элегантные способы решения этой задачи – прошу поделиться ими!

Конструктивная критика приветствуется.

Эта статья была полезной? Поставьте лайк и поделитесь с друзьями в социальных сетях!

Оставьте отзывы и замечания!

Задача для закрепления: ««Дан список оценок 17 студентов по контрольной работе в виде list [‘5’, ‘4’,’ 5’, ‘3’ ….]. Написать функцию, возвращающую наиболее популярную оценку»

Предыдущая задача:

Решение практической задачи № 3

Более полное описание подходов, методов и функций, применяемых в этом решении:

Основы работы со строками

Методы строк. Часть 1

Основы работы со списками

Методы списков. Часть 1

Основы работы с числами

Числовые функции.Часть 1

База знаний

Функции: min(), max()

Методы: .count(), .sort()

Типы данных: list (списки)

Модули: statistics ( mode())