undo
search menu close

Общие функции коллекций

📅 8 мая 2025 г. 21:37

Несмотря на то, что коллекции в Python имеют свои уникальные особенности, они также обладают некоторыми общими способами работы с ними. Так мы можем получить количество элементов любой коллекции и проверить принадлежность элемента ей, а также определить максимальное и минимальное значение или посчитать сумму коллекции чисел.

Размер коллекции

Мы уже встречались с функцией len(), когда говорили о переборе элементов упорядоченных коллекций по индексу. Но она позволяет узнать, сколько элементов содержится в любой встроенной коллекции Python.

Функция len(collection)
Описание Возвращает количество элементов коллекции collection
Параметры collection – коллекция, количество элементов которой требуется определить
Возвращаемое значение Целое число

Например, определим количество элементов в множестве:

weapons = ("Меч", "Лук", "Копье")
print(len(weapons)) 
# Вывод: 3

Или количество пар «ключ-значение» в словаре:

charactes = {"Аладдин": 18, "Жасмин": 15, "Джафар": 60}
print(len(characters)) 
# Вывод: 3

Максимальное и минимальное значение коллекции

Python предоставляет удобные функции max() и min() для определения наибольшего и наименьшего значения в коллекции соответственно.

Функция min(collection)
Описание Возвращает минимальное значение коллекции collection
Параметры collection – коллекция, в которой требуется найти минимальное значение
Возвращаемое значение Элемент коллекции
Функция max(collection)
Описание Возвращает максимальное значение коллекции collection
Параметры collection – коллекция, в которой требуется найти максимальное значение
Возвращаемое значение Элемент коллекции

Когда элементы коллекции представлены числами, минимальное и максимальное значение определяются арифметически:

numbers = (21, 23, 100, 24, 25)
print(max(numbers_tuple)) 
# Вывод: 100
print(min(numbers_tuple)) 
# Вывод: 21

Но строки сравниваются лексикографически, то есть символ за символом, основываясь на порядковых номерах символах в Юникоде. При этом заглавные буквы будут меньше строчных:

tongue_twister = ("Ехал", "Грека", "через", "реку")
print(max(str_tuple)) 
# Вывод: через
print(min(str_tuple)) 
# Вывод: Грека

В словарях можно находить максимальное и минимальное значение как среди ключей:

numbers_dict = {1: 100, 2: 200, 3: 300}
print(max(numbers_dict.keys())) 
# Вывод: 3
print(min(numbers_dict.keys())) 
# Вывод: 1

Так и среди значений:

print(max(numbers_dict.values())) 
# Вывод: 300
print(min(numbers_dict.values())) 
# Вывод: 100

Функции max() и min() ожидают, что все элементы в коллекции будут одного типа (либо числа, либо строки, либо другие сравнимые типы). Попытка сравнить, например, число со строкой приведет к исключению TypeError.

some_values = ["Это строка", 1, "Снова строка", 2]
print(max(some_values)) 
# Ошибка: TypeError: '>' not supported between instances of 'int' and 'str'

Сумма элементов коллекции

Если коллекция состоит из чисел, функция sum() поможет быстро вычислить их общую сумму.

Функция sum(collection)
Описание Возвращает сумму коллекции чисел collection
Параметры collection – коллекция чисел, сумму которой требуется найти
Возвращаемое значение Целое или вещественное число

Например, посчитаем сумму кортежа и значений словаря:

numbers_tuple = (10, 20, 30)
print(sum(numbers_tuple)) 
# Вывод: 60

numbers_dict = {1: 100, 2: 200, 3: 300}
print(sum(numbers_dict.values())) 
# Вывод: 600

При этом попытка сложить элементы, которые не являются числами (например, строки), приведет к ошибке TypeError:

str_numbers = "0123456789"
print(sum(str_numbers)) 
# Ошибка: TypeError: unsupported operand type(s) for +: 'int' and 'str'

Проверка принадлежности элемента коллекции

Мы уже рассматривали работу операторов сравнения и идентичности, а также логических операторов. Они возвращают True, если выражение истинное, иначе – False.

Кроме них в Python существует оператор принадлежности in (с англ. – в). Он возвращает True, если элемент присутствует в коллекции, и False в противном случае:

элемент in коллекция

Например, можно проверить содержит ли строка символ или другую строку:

print("сирень" in "Сладкая сирень") 
# Вывод: True

Или содержит список или множество какой-либо элемент:

artifacts = ["Рог изобилия", "Бездонный графин", "Волшебная лампа"]
print("Бездонный графин" in artifacts) 
# Вывод: True

witchers = {"Геральт", "Весемир", "Эскель"}
if "Весемир" in witchers:
    print("Весемир доблестно сражался!")
# Вывод: Весемир доблестно сражался!

В cловаре, как и при переборе элементов в цикле for, по умолчанию проверяется принадлежность элемента к ключам:

actors = {"Генри Кавилл": "Геральт", "Аня Чалотра": "Йеннифэр", "Фрейя Аллан": "Цирилла"}
print("Генри Кавилл" in actors) 
# Вывод: True

Последовательность значений можно получить с помощью уже знакомого нам метода dict.values():

actors = {"Генри Кавилл": "Геральт", "Аня Чалотра": "Йеннифэр", "Фрейя Аллан": "Цирилла"}
print("Геральт" in actors.values()) 
# Вывод: True

Также можно проверить наличие пары (ключ, значение) получив их последовательность с помощью метода dict.items():

actors = {"Генри Кавилл": "Геральт", "Аня Чалотра": "Йеннифэр", "Фрейя Аллан": "Цирилла"}
print(("Генри Кавилл", "Геральт") in actors.items()) 
# Вывод: True

Оператор принадлежности in можно совмещать с логическим отрицанием not:

элемент not in коллекция

Тогда будет проверяться отсутствие элемента в коллекции:

birds = ["Синица", "Снегирь", "Воробей"]
print("Голубь" not in birds) 
# Вывод: True
Задания для самопроверки

1. Дан список: numbers = [15, 8, 23, 8, 42, 10]. Напишите программу, которая вычисляет размер этого списка и сумму всех элементов списка. Полученные результаты должны быть выведены на экран.

 
Ответ

2. Дан кортеж: fruits = ("Яблоко", "Банан", "апельсин", "киви"). Напишите программу, которая находит лексикографически наибольшее и наименьшее  слово в этом кортеже. Полученные результаты должны быть выведены на экран.

 
Ответ

3. Почему этот код вызывает ошибку? Исправьте её.

mixed = [10, "20", 30]  
print(sum(mixed))
 
Ответ

4. Дан словарь: prices = {"Авокадо": 200, "Киви": 150, "Голубика": 175}. Напишите программу, которая проверяет есть ли в словаре пара с ключом "Авокадо" и значением 125. Результат проверки должен быть выведен на экран.

 
Ответ

5. Напишите программу, которая запрашивает у пользователя число n и после этого запрашивает на ввод n строк с фруктами и сохраняет их в список. Если этому списку принадлежит строка "Яблоко", то программа выводит строку "Вы любите яблоки", иначе – "Вы не любите яблоки".

Пример входных данных Пример выходных данных
2
Яблоко
Груша
Вы любите яблоки
4
Банан
Ананас
Апельсин
Груша
Вы не любите яблоки
1
Яблоко
Вы любите яблоки
 
Ответ
arrow_back_ios Назад
Дальше arrow_forward_ios

 💬 0 комментариев
person
email