← Назад к списку
Скачать
collections
Автор: Pans
Обучение
Создано: 07 April 2026, 18:24
| Изменено: 07 April 2026, 18:25
Базовые функции библиотеки collections и примеры использования
from collections import Counter, defaultdict, deque
def try_counter(item):
c = Counter(item)
return dict(c)
def try_defaultdict(item):
d = defaultdict(list)
for i, j in item:
d[i].append(j)
return dict(d)
def try_deque(item):
d = deque(item)
while d:
print(d.popleft())
if __name__ == '__main__':
data = "apple orange apple banana apple orange"
print(try_counter(data.split()))
data = [
("fruit", "apple"),
("fruit", "banana"),
("vegetable", "carrot"),
("fruit", "orange"),
]
print(try_defaultdict(data))
data = ["task1", "task2", "task3"]
try_deque(data)
logs = [
("user1", "login"),
("user2", "login"),
("user1", "logout"),
("user2", "logout"),
("user1", "login"),
]
data = try_defaultdict(logs)
for user in data:
print(f'{user} today make {try_counter(data[user])}')
Результат
{'apple': 3, 'orange': 2, 'banana': 1}
{'fruit': ['apple', 'banana', 'orange'], 'vegetable': ['carrot']}
task1
task2
task3
user1 today make {'login': 2, 'logout': 1}
user2 today make {'login': 1, 'logout': 1}
Комментарии (1)
Автор комментария:
Pans
07 April 2026, 18:25
У deque есть параметр maxlen= позволяющий оставить список заданного размера
from collections import deque
from numpy import mean
if __name__ == '__main__':
data = [10, 20, 30, 40, 50, 60]
d = deque(maxlen=3)
for i in data:
d.append(i)
print(f'{i} -> Avg {mean(d)}')
результат
10 -> Avg 10.0
20 -> Avg 15.0
30 -> Avg 20.0
40 -> Avg 30.0
50 -> Avg 40.0
60 -> Avg 50.0