Рассмотрим, как использовать функцию Python len() для получения количества элементов объекта.
Что такое функция len() в Python?
Функция len() возвращает количество элементов (длину) объекта. Вот синтаксис функции len():
len(s)
В этом синтаксисе s — это объект, длину которого вы хотите получить. Объектом может быть:
- Последовательность, такая как строка, байты, кортеж, список или диапазон.
- Коллекция, например, словарь, множество или frozen множество.
- Или любой определенный пользователем объект, реализующий метод __len__().
Когда вы вызываете функцию len() для объекта, функция len() делегирует методу __len__ объекта. Другими словами, она вызовет метод __len__() объекта.
Итак, следующий вызов функции:
len(obj)
эквивалентно:
obj.__len__()
Примеры с функцией len()
Давайте рассмотрим несколько примеров использования функции Python len().
1) Использование функции len() с последовательностью
В следующем примере показано, как использовать функцию len() для получения длины строки, количества элементов в кортеже и количества элементов в диапазоне:
s="Python"
print(len(s)) # 👉 6
seasons =('Spring', 'Summer', 'Autumn', 'Winter')
print(len(seasons)) # 👉 4
r = range(1, 10)
print(len(r)) # 👉 9
2) Использование функции len() с коллекцией
В следующем примере функция len() используется для получения количества элементов в коллекции:
days = {
1: 'Sun',
2: 'Mon',
3: 'Tue',
4: 'Wed',
5: 'Thu',
6: 'Fri',
7: 'Sat'
}
print(len(days)) # 👉 7
rgb = set(('red', 'green', 'blue'))
print(len(rgb)) # 👉 3
3) Функция len() с пользовательским объектом
В следующем примере показано, как использовать функцию len() с пользовательским объектом:
class Employee:
def __init__(self, name):
self.name = name
self.dependents = []
def add_dependent(self, dependent):
self.dependents.append(dependent)
return self
def __len__(self):
return len(self.dependents)
employee = Employee('John Doe')
employee.add_dependent('Alice Doe')
employee.add_dependent('Bob Doe')
print(len(employee)) # 👉 2
Как это работает.
- Сначала определите класс Employee, который имеет два атрибута: name и dependencies:
class Employee:
def __init__(self, name):
self.name = name
self.dependents = []
- Далее определите add_dependent(), который добавляет зависимый элемент в список зависимых элементов:
def add_dependent(self, dependent): self.dependents.append(dependent) return self
- Затем реализуйте метод __len__(), который возвращает количество иждивенцев сотрудника.
def __len__(self): return len(self.dependents)
- После этого создайте объект Employee и добавьте двух иждивенцев (dependents):
employee = Employee('John Doe')
employee.add_dependent('Alice Doe')
employee.add_dependent('Bob Doe')
Наконец, передайте объект employee в функцию len(). Функция len() вызовет метод __len__() класса Employee.
