Kolekcja w Pythonie: wszystko, co musisz wiedzieć
Opublikowany: 2021-04-09Python 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ę.
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. 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. namedtuple w Pythonie wykonuje różne operacje. Poniżej znajduje się lista niektórych z najczęstszych operacji wykonywanych przez namedtuple.Dlaczego potrzebujemy modułu kolekcji w Pythonie?
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?
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?
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.