Bywa że do krotki chcemy wstawić na tyle dużo danych, że zaczynamy się gubić w tym, na której pozycji znajduje się to co nas interesuje. Zamiast tworzyć klasę z polami, można skorzystać z namedtuple.
from collections import namedtuple User = namedtuple('User', ['name', 'address', 'email']) user = User('Bob', 'blog.example.com', 'bob@example.com') print('Name: ' + user.name) print('Web: ' + user.address) print('Email: ' + user.email)Wynik:
Name: Bob Web: blog.example.com Email: bob@example.comCounter pozwala na zliczanie elementów - zamiast dedykowanej pętli for.
from collections import Counter indexer = Counter(['Bob', 'Alice', 'Bob', 'Bob']) print(indexer['Bob'])Wynik:
3defaultdict jest klasą pozwalają na ustawienie domyślnej wartości, dla nowych elementów. Przydatne, gdy dodajemy coś do wartości i nie chcemy robić testu na to, czy taki element już istnieje.
from collections import defaultdict d = defaultdict(lambda: '-') d['Bob'] += 'one_' d['Alice'] += 'two_' d['Bob'] += 'three_' print(d)Wynik:
defaultdict(<function <lambda> at 0x7fbf33b27578>, {'Bob': '-one_three_', 'Alice': '-two_'})
Brak komentarzy:
Prześlij komentarz