Функция len() в Python с примерами
Рассмотрим, как использовать функцию Python len() для получения количества элементов объекта.
- Что такое функция len() в Python?
- Примеры с функцией len()
- 1) Использование функции len() с последовательностью
- 2) Использование функции len() с коллекцией
- 3) Функция 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.