Kolekcja w Pythonie: wszystko, co musisz wiedzieć

Opublikowany: 2021-04-09

Python to potężny język programowania. Jest modułowy i znany ze swojej prostoty, wielokrotnego użytku i łatwości konserwacji. W programowaniu modułowym duże i złożone zadanie programistyczne dzieli się na mniejsze moduły.

W tym artykule omówiono kolekcję modułów w Pythonie . Kolekcja poprawia funkcjonalność i jest alternatywą dla wbudowanych kontenerów dict, list, set i krotek ogólnego przeznaczenia w Pythonie.

„Listy, krotki, zbiory i słowniki w Pythonie to struktury danych zdefiniowane przez użytkownika, a każda z nich ma swój własny zestaw zalet i wad”.

Spis treści

Moduł Pythona

Moduł to plik zawierający definicje i instrukcje Pythona, które implementują zestaw funkcji. Polecenie import służy do importowania modułów z innych modułów. Python ma kilka wbudowanych modułów.

Przejdźmy teraz do sedna artykułu i poznajmy szczegółowo kolekcję modułów w Pythonie .

Kolekcja w Pythonie

Kolekcja w Pythonie to kontener przechowujący kolekcje danych. List, set, krotka, dict itd. to kolekcje wbudowane w Pythonie . W Pythonie istnieje sześć modułów kolekcji, które oferują dodatkowe struktury danych do przechowywania kolekcji danych. Te moduły Pythona rozszerzają operacje zbierania wbudowanych kontenerów.

Omówimy teraz różne kontenery udostępniane przez kolekcję w module Python.

1. Zamówiony dykt

OrderedDict() działa podobnie do obiektu słownika, w którym klucze zachowują kolejność wstawiania. Jeśli chcesz ponownie wstawić klucz, poprzednia wartość zostanie nadpisana, a położenie klucza nie zmieni się.

Przykład:

importuj OrderedDict z kolekcji

d1=kolekcje.OrderedDict()

d1['A']=1

d1['B']=2

d1['C']=3

d1['D']=4

dla x,v w d1.items():

drukuj (x,v)

Wyjście:

1

B 2

C 3

D 4

2. deque()

Python deque() to zoptymalizowana lista, która dodaje i usuwa elementy z obu skrajności.

Przykład:

importuj deque z kolekcji

lista1 = [„a”, „b”, „c”]

deq = deque(lista1)

drukuj(deq)

Wyjście:

deque(['a', 'b', 'c'])

3. Licznik

Liczniki są podgrupą obiektów słownika, które zliczają obiekty haszujące. Funkcja licznika przyjmuje iterowalne dane wejściowe jako argument i zwraca dane wyjściowe jako słownik. Klucz jest elementem iterowalnym, a wartość jest całkowitą liczbą wystąpień elementu w iterowalnej.

Przykład:

importuj licznik z kolekcji

c = Licznik()

lista1 = [1,2,3,4,5,7,8,5,9,6,10]

Licznik(lista1)

Licznik ({1:5,2:4})

lista1 = [1,2,4,7,5,1,6,7,6,9,1]

c = Licznik(lista1)

drukuj (c[1])

Wyjście:

3

Dodatkowe funkcje licznika

1. elementy () Funkcja

Funkcja elements() zwraca listę elementów obecnych w obiekcie Counter .

Przykład:

c = Licznik ({1:4,2:3})

print(list(c.elements()))

Wyjście:

[1,1,1,1,1,2,2,2]

Tutaj obiekt Counter jest tworzony przy użyciu argumentu słownikowego. Liczba zliczeń dla 1 to 4, a dla 2 to 3. Funkcja elements() jest wywoływana z obiektem c zwracającym iterator.

2. Funkcja most_common()

Funkcja Counter() Pythona zwraca nieuporządkowany słownik, podczas gdy funkcja most_common() sortuje go według liczby każdego elementu.

Przykład:

lista = [1,2,3,4,5,5,5,7,3]

c = licznik(lista)

print(c.most_common())

Wyjście:

[((5,3), (1,1),(2,1),(3,2),(4,1), (7,1))]

Tutaj funkcja most_common zwraca posortowaną listę według liczby elementów. 5 przychodzi trzy razy; stąd pojawia się na pierwszym miejscu, jako element listy.

3. Funkcja odejmowania ()

Funkcja subtract() uwzględnia argumenty iterowalne lub mapowania i odejmuje liczbę elementów z tym argumentem.

Przykład:

c = licznik ({1:2,2:3})

wynik = {1:1,2:1}

c.odejmowanie (wyjście)

drukuj(c)

Wyjście:

Licznik ({1:1,2:2})

4. Obiekty mapy łańcuchowej

Klasa Chainmap grupuje wiele słowników, tworząc pojedynczą listę. Połączony słownik jest publiczny i można go uzyskać za pomocą atrybutu mapy.

Przykład:

Importuj mapę łańcuchową z kolekcji

dict1 = { 'w' : 1, 'x' : 2 }

dict2 = {'y' : 3. 'z': 4 }

chain_map = ChainMap(dict1,dict2)

drukuj(chain_map.maps)

Wyjście:

[{'x' : 2, 'w' :1}, {'y' : 3, 'x':4}]

5. Nazwana krotka

Funkcja namedtuple() zwraca obiekt krotki z nazwami dla każdej pozycji w krotce. Został wprowadzony w celu wyeliminowania problemu zapamiętywania indeksu każdego pola obiektu krotki.

Przykład:

Importuj nazwanątuple z kolekcji

Student = nazwanytuple ('Student','imię, nazwisko ,wiek')

s1 = Student ('Tom', 'Alter', '12')

drukuj(s1.imię)

Wyjście:

Student(imię='Tomek', nazwisko='Alter', wiek='12')

W tym przykładzie możesz uzyskać dostęp do pól dowolnej instancji klasy.

6. Domyślny słownik

Python defaultdict() jest obiektem słownikowym i jest podklasą klasy dict. Zapewnia wszystkie metody słownikowe, ale przyjmuje pierwszy argument jako domyślny typ danych. Zgłasza błąd , gdy uzyskujesz dostęp do nieistniejącego klucza.

Przykład:

importuj defaultdict z kolekcji

liczba = defaultdict(int)

liczba['jeden'] = 1

liczba['dwa'] = 2

drukuj (liczba['trzy'])

Wyjście:

0

Wniosek

Wiadomo, że kolekcja w Pythonie przynosi ulepszenie modułu kolekcji Pythona. Kolekcje zostały wprowadzone w Pythonie w wersji 2.4. W kolejnych wersjach można spodziewać się wielu zmian i ulepszeń. W tym artykule wyjaśniliśmy sześć istniejących kolekcji w Pythonie z przykładami i sposobem ich implementacji w języku. Są jednym z najważniejszych pojęć z punktu widzenia ucznia.

Naucz się kolekcji w Pythonie dzięki ekskluzywnemu programowi upGrad do nauki aplikacji komputerowych . Program ten obejmuje umiejętności niezbędne do wejścia do branży IT.

Jeśli chcesz dowiedzieć się czegoś o Pythonie, Data Science, sprawdź program Executive PG w Data Science IIIT-B i upGrad, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży , 1 na 1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Zapoznaj się z internetowymi kursami naukowymi o danych z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Dlaczego potrzebujemy modułu kolekcji w Pythonie?

Python ma już 4 wbudowane typy danych kolekcji. Są to lista, krotka, słownik i zestaw. Jednak te kontenery danych są używane do celów ogólnych.
Poniższe punkty podkreślają główne zalety korzystania z modułu gromadzenia nad wbudowanymi kontenerami danych.
Moduł zbierania udostępnia wyspecjalizowane wersje tych kontenerów, takie jak namedtuple, OrderedDict, defaultdict, chainmap, counter i wiele innych.
Będąc bardziej zoptymalizowanymi, kontenery te okazują się lepszą alternatywą dla tradycyjnych kontenerów danych, takich jak lista, krotka i zestaw.
Moduł gromadzenia danych skutecznie radzi sobie z danymi strukturalnymi.
Kontenery danych, takie jak namedtuple, zużywają mniej pamięci i zapewniają rozszerzone operacje przechowywania danych i zarządzania nimi.

Jaka jest różnica między słownikiem a słownikiem uporządkowanym w Pythonie?

Słownik Pythona lub „Dict” to wbudowana struktura danych Pythona, która służy do przechowywania nieuporządkowanej kolekcji elementów. W przeciwieństwie do innych struktur danych Pythona, które przechowują pojedyncze wartości, struktura danych słownika przechowuje pary klucz-wartość, w których każdy klucz jest unikalny. Nie zapamiętuje kolejności wstawiania par klucz-wartość i iteruje po kluczach.
Z drugiej strony słownik uporządkowany lub słownik uporządkowany śledzi kolejność wstawiania par klucz-wartość. Zużywa również więcej pamięci niż zwykły słownik w Pythonie ze względu na implementację podwójnie połączonej listy. Jeśli usuniesz i ponownie włożysz ten sam klucz, zostanie on wstawiony w oryginalnej pozycji, ponieważ OrderedDict pamięta kolejność wstawiania.

Jakie są różne operacje namedtuple?

namedtuple w Pythonie wykonuje różne operacje. Poniżej znajduje się lista niektórych z najczęstszych operacji wykonywanych przez namedtuple.
1. Operacje dostępu: Dostęp przez indeks: Dostęp do elementów w namedtuple można uzyskać za pomocą ich indeksów, w przeciwieństwie do słownika. Dostęp według nazwy klucza: Alternatywnym sposobem uzyskania dostępu do elementów jest ich nazwa klucza.
2. Operacje konwersji: make(): Ta funkcja zwraca nazwaną krotkę. _asadict(): Ta funkcja zwraca uporządkowany słownik, który jest zbudowany z mapowanych wartości. przy użyciu operatora „**” (podwójna gwiazdka): Ta funkcja konwertuje słownik Pythona na nazwaną krotkę.
3. Dodatkowe Operacje: _fileds(): Ta funkcja zwraca wszystkie nazwy kluczy podanej namedtuple. _replace(): Ta funkcja przyjmuje nazwę klucza jako swój argument i zmienia przypisane do niej wartości.