Język programowania Python ma cztery typy danych kolekcji: lista , krotka, zestawy i . Ale jest również wyposażony we wbudowany moduł zwany kolekcjami, który ma wyspecjalizowane struktury danych, które zasadniczo pokrywają wady czterech typów danych. Na tym blogu szczegółowo omówimy każdą z tych wyspecjalizowanych struktur danych. Oto tematy omówione na tym blogu:
Co to są kolekcje w Pythonie?
Kolekcje w Pythonie to w zasadzie typy kontenerów, a mianowicie listy, zbiory, krotki, słownik. Mają różne cechy w zależności od deklaracji i zastosowania.
Lista jest zadeklarowana w nawiasach kwadratowych, jest zmienna, przechowuje zduplikowane wartości, a dostęp do elementów można uzyskać za pomocą indeksów.
Krotka jest z natury uporządkowana i niezmienna, chociaż wewnątrz krotki mogą znajdować się zduplikowane wpisy.
Zestaw jest nieuporządkowany i zadeklarowany w nawiasach kwadratowych. Nie jest indeksowany i nie ma również zduplikowanych wpisów.
Słownik ma pary klucz-wartość i jest zmienny z natury. Do deklarowania słownika używamy nawiasów kwadratowych.
To są wbudowane typy danych kontenera ogólnego przeznaczenia. Ale jak wszyscy wiemy, Python zawsze ma coś do zaoferowania. Zawiera moduł Pythona o nazwie collections, który ma wyspecjalizowane struktury danych.
Specjalistyczne struktury danych gromadzenia danych
Kolekcje moduł w pythonie implementuje specjalistyczne struktury danych, które stanowią alternatywę dla wbudowanych w Pythona kontenerowych typów danych. Poniżej przedstawiono wyspecjalizowane struktury danych w module kolekcji.
- namedtuple ()
- i
- Chainmap
- Licznik
- OrderedDict
- defaultdict
- UserDict
- Lista użytkowników
- UserString
namedtuple ()
Zwraca krotkę z nazwanym wpisem, co oznacza, że każdej wartości w krotce zostanie przypisana nazwa. Rozwiązuje problem dostępu do elementów przy użyciu wartości indeksu. Dzięki namedtuple () dostęp do tych wartości staje się łatwiejszy, ponieważ nie musisz pamiętać wartości indeksu, aby uzyskać określone elementy.
Jak to działa?
Przede wszystkim należy zaimportować moduł kolekcji, nie wymaga on instalacji.
z kolekcji import namedtuple
Spójrz na poniższy kod, aby zrozumieć, jak możesz używać namedtuple.
a = namedtuple ('kursy', 'nazwa, technika') s = a ('nauka o danych', 'python') print (s) # wynikiem będą kursy (name = 'python', tech = 'python')
Jak stworzyć nazwanytuple za pomocą listy?
s._make (['nauka o danych', 'python']) # dane wyjściowe będą takie same jak poprzednio.
i
deque wymawiane jako „deck” to zoptymalizowana lista do łatwego wstawiania i usuwania.
Jak to działa?
# tworzenie deque z kolekcji import deque a = ['d', 'u', 'r', 'e', 'k'] a1 = deque (a) print (a1) # wyjście będzie deque ([' d ',' u ',' r ',' e ',' k '])
Teraz przyjrzyjmy się, jak wstawiamy i usuwamy elementy z deque.
jak zainstalować php w oknie
a1.append ('a') print (a1) # wyjście będzie deque (['d', 'u', 'r', 'e', 'k', 'a']) a1.appendleft (' e ') print (a1) # wynik będzie deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])
Jak powinno być oczywiste, wstawianie komponentu jest ulepszone za pomocą deque, można również usunąć komponenty.
a1.pop () print (a1) # wyjście będzie deque (['e', 'd', 'u', 'r', 'e', 'k']) a1.popleft () print (a1 ) # wyjście będzie deque (['d', 'u', 'r', 'e', 'k'])
Podobnie jak w przypadku wbudowanych typów danych, istnieje kilka innych operacji, które możemy wykonać na deque. Podobnie jak liczenie elementów lub czyszczenie deque itp.
ChainMap
Jest to klasa słownikowa, która jest w stanie zrobić pojedynczy widok wielu mapowań. Zasadniczo zwraca listę kilku innych słowników. Załóżmy, że masz dwa słowniki z kilkoma parami klucz-wartość, w tym przypadku ChainMap utworzy jedną listę zawierającą oba słowniki.
Jak to działa?
z kolekcji import ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the wynikiem będzie ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]
Aby uzyskać dostęp do elementów lub je wstawić, używamy kluczy jako indeksu. Ale aby dodać nowy słownik w ChainMap, używamy następującego podejścia.
a1 = {5: 'AI', 6: 'sieci neuronowe'} c1 = c.new_child (a1) print (c1) # wyjście będzie ChainMap [{1: 'edureka', 2: 'python'}, { 3: „nauka o danych”, 4: „Uczenie maszynowe”}, {5: „AI”, 6: „sieci neuronowe”}]
Licznik
Jest to podklasa słownika, która służy do liczenia obiektów, które można mieszać.
Jak to działa?
z importu kolekcji Licznik a = [1,1,1,1,2,3,3,4,3,3,4] c = Licznik (a) print (c) # wyjście będzie Licznik = ({1: 4, 2: 1, 3: 4, 4: 2})
Oprócz operacji, które możesz wykonać na słowniku Licznik ma jeszcze 3 operacje, które możemy wykonać.
- funkcja elementu - Zwraca listę zawierającą wszystkie elementy w Liczniku.
- Most_common () - Zwraca posortowaną listę z liczbą każdego elementu w liczniku.
- Subtract () - Pobiera iterowalny obiekt jako argument i odejmuje liczbę elementów w Counter.
OrderedDict
Jest to podklasa słownika, która zapamiętuje kolejność, w jakiej wpisy były dodawane. Zasadniczo, nawet jeśli zmienisz wartość klucza, pozycja nie zostanie zmieniona ze względu na kolejność, w jakiej został wstawiony do słownika.
Jak to działa?
z kolekcji import OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print (from) # wyjście będzie OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]
Nie ma znaczenia, jaka wartość zostanie wstawiona do słownika, OrderedDict zapamiętuje kolejność, w jakiej została wstawiona i odpowiednio otrzyma wynik. Nawet jeśli zmienimy wartość klucza. Powiedzmy, że jeśli zmienimy wartość klucza z 4 na 8, kolejność nie zmieni się na wyjściu.
defaultdict
Jest to podklasa słownikowa, która wywołuje funkcję fabryczną w celu uzupełnienia brakujących wartości. Ogólnie rzecz biorąc, nie generuje żadnych błędów, gdy w słowniku jest wywoływana brakująca wartość klucza.
Jak to działa?
z kolekcji import defaultdict d = defaultdict (int) # musimy również określić typ. d [1] = 'edureka' d [2] = 'python' print (d [3]) # to da wynik jako 0 zamiast błędu klucza.
UserDict
Ta klasa działa jak opakowanie wokół obiektów słownika. Potrzeba tej klasy wynikała z konieczności podklasy bezpośrednio z dyktatury. Praca z tą klasą staje się łatwiejsza, ponieważ słownik źródłowy staje się atrybutem.
kolekcje klas.UserDict ([dane początkowe])
Ta klasa symuluje słownik. Zawartość instancji jest przechowywana w zwykłym słowniku, do którego można uzyskać dostęp za pomocą atrybutu „data” klasy UserDict. Odniesienia do danych początkowych nie są przechowywane, aby można je było wykorzystać do innych celów.
Lista użytkowników
Ta klasa działa jak opakowanie wokół obiektów listy. Jest to przydatna klasa bazowa dla innych list, takich jak klasy, które mogą dziedziczyć po nich i nadpisywać istniejące metody, a nawet dodawać mniej nowych.
java jak używać iteratora
Potrzeba tej klasy wynikała z konieczności tworzenia podklas bezpośrednio z listy. Praca z tą klasą staje się łatwiejsza, gdy podstawowa lista staje się atrybutem.
kolekcje klas.UserList ([lista])
Jest to klasa, która symuluje listę. Zawartość instancji jest przechowywana na zwyczajowej liście. Podklasy listy są oparte na oferowaniu konstruktora, który można wywołać bez lub z jednym rywalem.
Na tym blogu dowiedzieliśmy się o wyspecjalizowanych strukturach danych, które są dostarczane z modułem kolekcji w Pythonie. Optymalizacja prowadzi do lepszej wydajności i lepszych wyników. To samo dotyczy naszej własnej kariery i umiejętności. Jeśli chcesz przyspieszyć naukę i zoptymalizować sposób, w jaki postrzegasz programowanie, zarejestruj się w edureka i uwolnij nieskończone możliwości dzięki Pythonowi.
Masz jakieś pytania? wspomnij o nich w komentarzach, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.