4 wbudowane struktury danych w Pythonie: słowniki, listy, zestawy, krotki
Opublikowany: 2020-03-24W tym artykule skupimy się na strukturach danych w Pythonie i pomożemy w jasnym zrozumieniu tematu. Dowiesz się, czym one są i jak działają. Udostępniliśmy również wiele przykładów, aby upewnić się, że nie masz żadnych wątpliwości dotyczących tematów, które tutaj udostępniliśmy.
Więc bez zbędnych ceregieli zacznijmy.
Spis treści
Czym są struktury danych?
Struktury danych pozwalają skutecznie i wydajnie organizować i zarządzać danymi. Zwiększają dostępność Twoich danych. Modyfikowanie przechowywanych danych staje się również znacznie prostsze, jeśli masz odpowiednie struktury danych. Umożliwiają one organizowanie i przechowywanie danych, dzięki czemu można później wykonywać na nich operacje bez żadnych trudności.
Python ma dwa rodzaje struktur danych. Struktury danych obsługiwane przez Python niejawnie to Set, Dictionary, List i Tuple. Są to wbudowane struktury danych Pythona.
Następnie istnieją struktury danych, które możesz stworzyć samodzielnie, aby mieć lepszą kontrolę nad funkcjonalnością. Są to struktury danych zdefiniowane przez użytkownika i obejmują listy połączone, wykresy, drzewa, stosy, kolejki i mapy skrótów. Struktury danych zdefiniowane przez użytkownika są również dostępne w innych językach programowania.
Czytaj więcej: 6 najczęściej używanych struktur danych w R
Wbudowane struktury danych w Pythonie
Python ma wiele wbudowanych struktur danych. Te zintegrowane struktury danych pomagają w szybkim i łatwym rozwiązywaniu problemów programistycznych. Jak wspomnieliśmy wcześniej, Python ma następujące zintegrowane struktury danych:
- Słowniki
- Listy
- Zestawy
- Krotki
Omówmy szczegółowo każdy z nich:
1. Słowniki
Używamy słowników do przechowywania par klucz-wartość. Podobnie jak słownik fizyczny przechowuje słowo wraz z jego znaczeniem, słownik w Pythonie przechowuje pary klucz-wartość. Terminy są kluczami, podczas gdy różne znaczenia związane z tymi słowami są wartościami. Dzięki tej wartości możesz uzyskać dostęp do kluczy.
Możesz utworzyć słownik z nawiasami klamrowymi. W tym celu możesz również użyć funkcji dict(). Oto przykład:
my_dict = {} #pusty słownik
drukuj(my_dict)
my_dict = {1: 'A', 2: 'B'} #słownik z elementami
drukuj(my_dict)
Wyjście powyższego kodu:
{}
{1: „A”, 2: „B”}
Możesz zmienić wartości słownika za pomocą klawiszy. Musisz najpierw uzyskać dostęp do klawiszy, aby zmienić wartości. Po zlokalizowaniu kluczy wystarczy dodać wymaganą parę klucz-wartość, aby uzyskać pożądany wynik.
my_dict = {'Pierwszy': 'A', 'Drugi': 'B'}
drukuj(my_dict)
my_dict['Drugi'] = 'C++' #zmiana elementu
drukuj(my_dict)
my_dict['Third'] = 'Ruby' #dodawanie pary klucz-wartość
drukuj(my_dict)
Wyjście powyższego kodu:
{'Pierwszy': 'A', 'Drugi': 'B'}
{'Pierwszy': 'A', 'Drugi': 'C'}
{'Pierwszy': 'A', 'Drugi': 'C', 'Trzeci': 'D'}
Możesz usunąć wartości ze słownika za pomocą funkcji pop(). Funkcja pop() zwraca wartość, którą usunąłeś. Parę klucz-wartość można pobrać za pomocą funkcji popitem(). Zwraca krotkę pary. Możesz również wyczyścić cały słownik za pomocą funkcji clear(). Oto przykład:
my_dict = {'Pierwszy': 'A', 'Drugi': 'B', 'Trzeci': 'C'}
a = my_dict.pop('Trzeci') #pop element
print('Wartość:', a)
print('Słownik:', my_dict)
b = my_dict.popitem() #wybierz parę klucz-wartość
print('Klucz, para wartości:', b)
print('Słownik', my_dict)
my_dict.clear() #pusty słownik
print('n', my_dict)
Wyjście powyższego kodu:
Wartość: C
Słownik: {'Pierwszy': 'A', 'Drugi': 'B'}
Klucz, para wartości: („Drugi”, „B”)
Słownik {'Pierwszy': 'A'}
{}
Przeczytaj także: Pomysły i tematy projektów Pythona
2. Listy
Używamy list do sekwencyjnego przechowywania danych. Każdy element listy posiada adres, który jest również nazywany indeksem. Wartość indeksu listy przechodzi od 0 do ostatniego elementu na liście, a jej nazwa to indeksowanie dodatnie. Podobnie, kiedy cofasz się od ostatniego elementu do pierwszego i liczysz od -1, nazywa się to indeksowaniem ujemnym.
Możesz utworzyć listę, używając nawiasów kwadratowych i dodawać do nich elementy według potrzeb. Jeśli zostawisz puste nawiasy, lista nie będzie zawierała żadnych elementów, a także będzie pusta. Oto przykład listy:
moja_lista = [] #utwórz pustą listę
drukuj(moja_lista)
moja_lista = [A, B, C, 'przykład', Z] #tworzenie listy z danymi
drukuj(moja_lista)
Wyjście powyższego kodu:
[]
[A, B, C, 'przykład', Z]
Możesz dodawać elementy do swojej listy za pomocą funkcji insert(), extend() i append(). Funkcja insert() dodaje te elementy, które zostały przekazane do wartości indeksu. Funkcja insert() również zwiększa rozmiar listy.
Dzięki funkcji append() możesz dodać wszystkie przekazane do niej elementy jako pojedynczy element. Z drugiej strony funkcja extend() może dodawać elementy jeden po drugim.
Oto przykład:
moja_lista = [A, B, C]
drukuj(moja_lista)
moja_lista.append([555, 12]) #dodaj jako pojedynczy element
drukuj(moja_lista)
moja_lista.extend([234, 'more_example']) #dodaj jako różne elementy
drukuj(moja_lista)
moja_lista.insert(1, 'wstaw_przyklad') #dodaj element i
drukuj(moja_lista)
Wyjście powyższego kodu:
[A, B, C]
[A, B, C, [555, 12]]
[A, B, C, [555, 12], 234, 'więcej_przykładu']
[A, 'wstaw_przykład', B, C, [555, 12], 234, 'więcej_przykładu']
Podczas pracy z listami napotkasz również potrzebę usunięcia niektórych elementów. Możesz użyć słowa kluczowego „del”. Jest to wbudowane słowo kluczowe Pythona i niczego nie zwraca. Jeśli chcesz element z powrotem, będziesz musiał użyć funkcji pop() i usunąć element poprzez jego wartość, będziesz musiał użyć funkcji remove(). Oto przykład:

moja_lista = [A, B, C, 'przykład', Z, 10, 30]
del moja_lista[5] #delete element w indeksie 5
drukuj(moja_lista)
moja_lista.remove('przykład') #usuń element z wartością
drukuj(moja_lista)
a = moja_lista.pop(1) #pop element z listy
print('Popped Element: ', a, ' Pozostała lista: ', moja_lista)
moja_lista.clear() #opróżnij listę
drukuj(moja_lista)
Wyjście powyższego kodu:
[A, B, C, 'przykład', Z, 30]
[A, B, C, Z, 30]
Wystrzelony element: 2 Pozostała lista: [A, C, Z, 30]
[]
Możesz przekazać wartości indeksu w Pythonie i uzyskać wymagane wartości.
moja_lista = [A, B, C, 'przykład', Z, 10, 30]
dla elementu w my_list: #dostęp do elementów jeden po drugim
drukuj(element)
print(moja_lista) #dostęp do wszystkich elementów
print(moja_lista[3]) #dostęp do indeksu 3 element
print(my_list[0:2]) #dostęp do elementów od 0 do 1 i wykluczenie 2
print(moja_lista[::-1]) #dostęp do elementów w odwrotnej kolejności
Wyjście powyższego kodu:
A
b
C
przykład
Z
10
30
[A, B, C, 'przykład', Z, 10, 30]
przykład
[A, B]
[30, 10, Z, 'przykład', 3, 2, 1]
3 zestawy
Zbiór unikalnych i nieuporządkowanych przedmiotów nazywamy zestawem. Jeśli więc z jakiegoś powodu powtórzysz dane, pojawią się one w zestawie tylko raz. Zbiory w Pythonie są podobne do zbiorów, o których czytasz w matematyce. Od ich właściwości po funkcje, znajdziesz między nimi wiele podobieństw.
Możesz stworzyć zestaw używając nawiasów kwiatowych i przekazując jego wartości. Oto przykład:
mój_zestaw = {A, B, C, D, E, E, E} #utwórz zbiór
drukuj(mój_zestaw)
Wyjście powyższego kodu:
{A, B, C, D, E}
Jak wspomnieliśmy wcześniej, możesz wykonywać wszystkie funkcje zestawów, które wykonujesz w arytmetyce w zestawach Pythona. Za pomocą funkcji union() możesz połączyć dane obecne w dwóch zestawach. Funkcja intersection() podaje dane obecne w obu wspomnianych zestawach.
Masz funkcję różnicy(), która pozwala usunąć dane dostępne w obu zestawach i daje dane, które nie są powszechne wśród nich. Funkcja symmetric_difference() podaje dane pozostałe w tych zestawach.
mój_zestaw = {A, B, C, D}
mój_zestaw_2 = {C, D, E, F}
print(mój_zestaw.union(mój_zestaw_2), '———-', mój_zestaw | mój_zestaw_2)
print(my_set.intersection(my_set_2), '———-', my_set & my_set_2)
print(mój_zestaw.różnica(mój_zestaw_2), '———-', mój_zestaw – mój_zestaw_2)
print(mój_zestaw.symetryczna_różnica(mój_zestaw_2), '———-', mój_zestaw ^ mój_zestaw_2)
mój_zestaw.wyczyść()
drukuj(mój_zestaw)
Wyjście powyższego kodu:
{A, B, C, D, E, F} ———- {A, B, C, D, E, F}
{C, D} ———- {C, D}
{A, B} ———- {A, B}
{A, B, E, F} ———- {A, B, E, F}
ustawić()
Przeczytaj także: Wynagrodzenie programisty Pythona w Indiach
4. Krotki
Krotki są podobne do list, ale po wprowadzeniu danych w krotce nie można ich zmienić, chyba że jest ona zmienna. Zrozumienie ich może być trochę trudne, ale nie martw się, nasz przykładowy kod może ci w tym pomóc. Możesz utworzyć krotkę za pomocą funkcji tuple().
moja_krotka = (A, B, C) #utwórz krotkę
drukuj(moja_krotka)
Wyjście powyższego kodu:
(A, B, C)
Metoda uzyskiwania dostępu do wartości w krotkach jest taka sama jak w listach.
my_tuple2 = (A, B, C, 'Upgrad') #dostęp do elementów
dla x w my_tuple2:
drukuj(x)
drukuj(moja_krotka2)
drukuj(moja_krotka2[0])
drukuj(moja_krotka2[:])
Wyjście powyższego kodu:
A
b
C
Ulepszenie
(A, B, C, „Ulepszenie”)
A
(A, B, C, „Ulepszenie”)
Wniosek
Teraz musisz zaznajomić się z różnymi strukturami danych w Pythonie . Mamy nadzieję, że ten artykuł okazał się przydatny. Struktury danych odgrywają znaczącą rolę w pomaganiu w organizowaniu, zarządzaniu i uzyskiwaniu dostępu do danych. Istnieje wiele opcji do wyboru, a każda z nich ma swoje szczególne zastosowanie.
Jeśli chcesz dowiedzieć się więcej o Pythonie i strukturach danych, zapoznaj się z naszymi kursami.
Jeśli chcesz dowiedzieć się czegoś o Pythonie, wszystkiego o data science, sprawdź IIIT-B i upGrad's PG Diploma in Data Science, 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 przemysłem eksperci, indywidualni z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.
Kiedy używany jest słownikowy typ danych?
Słownik można zdefiniować jako wartościowy typ danych używany w Pythonie jako zbiór danych przechowywanych w parach kluczy i wartości. Teraz wartości słownika mogą być dowolnego typu danych, ale klucze muszą być niezmiennym typem danych, takim jak krotka, liczba całkowita lub ciąg.
Słowniki są bardzo przydatne, gdy chcesz natychmiast znaleźć wartość bez przechodzenia przez cały zbiór danych. Poza tym słownik jest również bardzo przydatny, gdy kolejność danych nie jest istotna. Typ danych słownika jest preferowany, gdy uwzględnienie pamięci nie jest ważnym czynnikiem, ponieważ zwykle zajmują więcej miejsca w porównaniu z listami i krotkami.
Jaka jest różnica między listami a krotkami?
List i krotki są typami danych sekwencyjnych, które są przydatne do przechowywania kolekcji danych w Pythonie. Najważniejsza różnica między nimi polega na tym, że listy są zmienne, podczas gdy krotki są niezmienne. Co więcej, implikacja iteracji jest znacznie szybsza w krotkach niż w listach.
Jeśli chcesz wykonywać operacje wstawiania i usuwania, listy ułatwiają to. Jednocześnie w krotkach można uzyskać lepszy dostęp do elementów. Kolejnym ważnym czynnikiem, który determinuje wykorzystanie dowolnej struktury danych, jest pamięć. Tutaj listy mają tendencję do zużywania więcej pamięci w porównaniu do krotek.
Czym różnią się zestawy od list?
Listy są uważane za najpotężniejsze narzędzie w Pythonie, ponieważ nie zawsze muszą być jednorodne. Zarówno listy, jak i zestawy mogą zawierać różne typy danych. Teraz listy mogą zawierać zduplikowane elementy, ale zestawy nigdy nie mogą zawierać duplikatów i po prostu znikną z zestawu.
Kolejność elementów jest zachowywana na listach, ale zestawy nigdy nie mogą zachować kolejności elementów. Ponieważ listy zajmują dużo miejsca obliczeniowego, zajmują dużo czasu. Z drugiej strony zestawy wykorzystują hashowanie do wykonywania wyszukiwań i są znacznie szybsze niż listy.