
Harry James
0
4274
155
Słownik python to struktura danych podobna do tablicy asocjacyjnej występującej w innych językach programowania. Tablica lub lista indeksuje elementy według pozycji. Z kolei słownik indeksuje elementy według klawiatura które mogą być łańcuchami. Pomyśl o słowniku jako nieuporządkowanym zestawie kluczowa wartość pary.
W tym artykule przedstawiamy pracę ze słownikiem python.
Tworzenie słownika
Istnieje kilka sposobów tworzenia słownika python. Najprostszy wykorzystuje inicjowanie nawiasów klamrowych, ze składnią przypominającą JSON Jak uzyskać komunikację w Pythonie i JavaScript za pomocą JSON Jak uzyskać komunikację w Pythonie i JavaScript za pomocą JSON Dzisiaj pokażę Ci, jak używać JSON do wysyłania danych z JavaScript do Pythona . Omówię konfigurację serwera WWW wraz z całym potrzebnym kodem. .
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27
Możesz także używać liczb jako kluczy. Należy jednak zachować ostrożność, używając liczb zmiennoprzecinkowych jako kluczy, ponieważ komputer przechowuje je jako przybliżone Wszystko, co musisz wiedzieć o pamięci RAM i zarządzaniu pamięcią Wszystko, co musisz wiedzieć o pamięci RAM i zarządzaniu pamięcią RAM to pamięć krótkotrwała komputera. Dlatego zarządzanie pamięcią ma znaczący wpływ na wydajność systemu. Tutaj wyjaśniamy, jak działa pamięć RAM i czy możesz zrobić coś, aby zwiększyć jej wydajność. .
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' drukuj rain_percent drukuj rain_percent [1980] # drukuje 1980: '17%', 1981: '15% ', 1982: „10%” 17%
Określanie par klucz-wartość
Możesz także utworzyć i zainicjować słownik, używając par wartości nazwa jako argumentów słów kluczowych do dict () konstruktor.
populacja = dykt (Kalifornia = 37253956, Kolorado = 5029196, Connecticut = 3574097, Delaware = 897934) drukuj populacja # drukuje „Connecticut”: 3574097, „Delaware”: 897934, „Kalifornia”: 37253956, „Kolorado”: 5029196
Tablica krotek klucz-wartość
Jeszcze innym sposobem tworzenia słownika jest użycie tablicy krotek klucz-wartość. Oto ten sam przykład jak powyżej.
pary = [(„Kalifornia”, 37253956), („Kolorado”, 5029196), („Connecticut”, 3574097), („Delaware”, 897934)] populacja = dykta (pary) drukuj populacja # drukuje Connecticut: 3574097, „Delaware”: 897934, „California”: 37253956, „Colorado”: 5029196
Rozumiem
Zrozumienie nagrania zapewnia fajną składnię do zainicjowania nagrania, jeśli można obliczyć wartości na podstawie kluczy. Poniżej zainicjowano dykt liczb i wartości kwadratowych dla zakresu liczb.
print x: x ** 2 dla x w xrange (10, 20) # print 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17 : 289, 18: 324, 19: 361
Jak to działa? Ta ostatnia część (dla x w xrange (10, 20)) zwraca zakres liczb z określonego zakresu. Część ze zrozumieniem dykta (x: x ** 2…) zapętla ten zakres i inicjuje słownik.
Praca ze słownikiem Python
Co możesz zrobić ze słownikami po ich utworzeniu? Możesz uzyskać dostęp do elementów, aktualizować wartości, usuwać elementy itp.
Dostęp do elementów słownika Python
Uzyskaj dostęp do elementu dykta za pomocą klucza w nawiasach kwadratowych, podobnie jak w przypadku tablicy lub listy Jak działają tablice i listy w Pythonie Jak działają tablice i listy w Pythonie Tablice i listy są jednymi z najbardziej przydatnych struktur danych w programowaniu - chociaż niewiele osób wykorzystuje je w pełni. .
populacja druku [„Delaware”] # wydruki 897934
Jeśli klucz jest liczbą, nie potrzebujesz cytatów. Wyrażenie wygląda wtedy jak indeksowanie listy lub tablicy.
print rain_percent [1980] # wydruków 17%
Typ klucza podczas uzyskiwania dostępu musi być zgodny z tym, co jest zapisane w słowniku Pythona. Następujące powoduje błąd, ponieważ przechowywane klucze to cyfry, a klucz dostępu to ciąg znaków.
x = '1980' print rain_percent [x] # wyników w 1 x = '1980' ----> 2 wydrukuj rain_percent [x] KeyError: '1980'
Dostęp do nieistniejącego klucza jest błędem.
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' drukuj rain_percent [1983] # drukuje 1 rain_percent = 1980: '17%', 1981: '15% ', 1982 : '10% ' ----> 2 print rain_percent [1983] KeyError: 1983
Aby uzyskać dostęp do klucza i podać wartość domyślną, jeśli mapowanie nie istnieje, użyj otrzymać() metoda z wartością domyślną jako drugim argumentem.
print rain_percent.get (1985, '0%') # drukuje 0%
Sprawdzanie istnienia
Co jeśli chcesz sprawdzić obecność klucza bez próby uzyskania do niego dostępu (i prawdopodobnie napotkania KeyError jak wyżej)? Możesz użyć w słowo kluczowe w formularzu klucz w dct która zwraca wartość logiczną.
print 1980 w rain_percent print '1980' w rain_percent # print True False
Odwróć warunek (tj. Upewnij się, że klucz nie występuje w słowniku Pythona), używając formularza klucz nie w dct. Jest to równoważne ze standardową negacją python nie wpisuj w dct.
print 1980 not in rain_percent print 1985 not in rain_percent # prints False True
Modyfikowanie elementów
Zmień wartość, przypisując do wymaganego klucza.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users ['age'] = 29 print users # prints 'lastname': 'Smith', 'age': 29, „firstname”: „John”
Użyj tej samej składni, aby dodać nowe mapowanie do słownika Python.
users ['dob'] = '15 -sep-1971 'print users # print ' dob ': '15 -sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': ' Jan'
Zaktualizuj wiele elementów słownika w jednym ujęciu za pomocą aktualizacja() metoda.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.update ('age': 29, 'dob': '15 -sep-1971 ') drukuj users # print „dob”: „15 -sep-1971 ”,„ nazwisko ”:„ Smith ”,„ wiek ”: 29,„ imię ”:„ John ”
Ustaw wartość domyślną dla klucza za pomocą setdefault (). Ta metoda ustawia wartość klucza, jeśli mapowanie nie istnieje. Zwraca bieżącą wartość.
# nie zmienia bieżącej wartości print users.setdefault ('imię', 'Jane') # drukuje John # ustawia wartość print users.setdefault ('miasto', 'NY') # drukuje NY # Końcowa wartość drukuje users # drukuje ' nazwisko „:” Smith ”,„ wiek ”: 27,„ imię ”:„ John ”,„ miasto ”:„ NY ”
Usuwanie elementów
Usuń odwzorowania ze słownika za pomocą del operator. Ten operator nic nie zwraca.
Spotkasz KeyError jeśli klucz nie istnieje w słowniku.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 del users ['age'] print users # print 'lastname': 'Smith', 'firstname': ' Jan'
Użyj Muzyka pop() zamiast tego, gdy chcesz odzyskać usuniętą wartość.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.pop ('age') print users # prints 27 'lastname': 'Smith', 'firstname ': 'Jan'
Co zrobić, jeśli chcesz usunąć klucz, jeśli istnieje, bez powodowania błędu, jeśli nie istnieje? Możesz użyć Muzyka pop() i określ Żaden dla drugiego argumentu, jak następuje:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.pop ('foo', None) print users # print 'lastname': 'Smith', 'age „: 27,„ firstname ”:„ John ”
A tutaj jest jedno-liniowy program do usuwania wiązki kluczy ze słownika bez powodowania błędu w nieistniejących kluczach.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 ' map (lambda x: users.pop (x, Brak) , [„wiek”, „foo”, „dob”]) drukuj użytkowników
Chcesz usunąć wszystkie klucze ze słownika? Użyj jasny() metoda.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.clear () print users # print
Pętla ze słownikami Python
Python oferuje wiele metod zapętlania. Jak działają pętle „do-while” w programowaniu komputerowym. Jak działają pętle „do-while” w programowaniu komputerowym. Pętle są jednym z pierwszych typów sterowania, których nauczysz się w programowaniu. Prawdopodobnie wiesz o pętlach while i for, ale co osiąga pętla do-while? nad wpisami słownika. Wybierz jeden, który odpowiada Twoim potrzebom.
Pętla nad klawiszami
- Najprostsza metoda sekwencyjnego przetwarzania kluczy (i ewentualnie wartości) wykorzystuje pętlę formularza:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla k w users: print k, '=>', users [k] # drukuje nazwisko => Smith age = > 27 imię => John
- Przy użyciu metody iterkeys () działa dokładnie tak samo jak powyżej. Wybierz, którego formularza chcesz użyć.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla k w users.iterkeys (): print k, '=>', users [k] # print lastname = > Smith wiek => 27 imię => John
- Trzecia metoda pobierania i przetwarzania kluczy w pętli wymaga użycia wbudowanej funkcji iter ().
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla k in iter (users): print k, '=>', users [k] # print lastname => Smith wiek => 27 imię => John
- Gdy potrzebujesz indeksu przetwarzanego klucza, użyj wyliczać() wbudowana funkcja, jak pokazano.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla indeksu, wprowadź wyliczenie (users): print index, key, '=>', users [k] # drukuje 0 nazwisko => John 1 wiek => John 2 imię => John
Pętla nad parami klucz-wartość
- Jeśli chcesz pobrać każdą parę klucz-wartość za jednym razem, użyj iteritems ().
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla k, v w users.iteritems (): print k, '=>', v # print lastname => Smith wiek => 27 imię => John
Iterating Over Values
- Metoda itervalues () można użyć do iteracji wszystkich wartości w słowniku. Chociaż ta metoda wygląda podobnie do pętli wartości (), jest bardziej wydajny, ponieważ nie wyodrębnia wszystkich wartości naraz.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla wartości w users.itervalues (): print value # prints Smith 27 John
Wyodrębnianie tablic
Poniższe metody opisują wyodrębnianie różnych informacji ze słownika Python w postaci tablicowej. Powstała tablica może być zapętlona przy użyciu normalnych konstrukcji Pythona. Należy jednak pamiętać, że zwracana tablica może być duża w zależności od wielkości słownika. Więc może być więcej drogi (pod względem pamięci) do przetwarzania tych tablic niż przy użyciu powyższych metod iteratora.
Jednym z przypadków, w którym akceptowalna jest praca z tymi tablicami, jest konieczność usunięcia elementów ze słownika, gdy napotkasz niepożądane elementy. Praca z iteratorem podczas modyfikowania słownika może spowodować błąd RuntimeError.
- Metoda przedmiotów() zwraca tablicę krotek klucz-wartość. Możesz iterować te pary klucz-wartość, jak pokazano:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 dla k, v w users.items (): print k, '=>', v # print lastname => Smith wiek => 27 imię => John
- Pobierz wszystkie klucze w słowniku przy użyciu metody klawiatura().
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.keys () # print ['lastname', 'age', 'firstname']
Użyj zwróconej tablicy, aby przeglądać klucze.
dla k w users.keys (): print k, '=>', users [k] # drukuje nazwisko => Smith wiek => 27 imię => John
- W podobny sposób użyj metody wartości () aby pobrać wszystkie wartości ze słownika.
dla wartości w users.values (): print value # print Smith 27 John
Jak korzystać ze słowników Python?
W tym artykule staraliśmy się opisać najczęstsze przypadki użycia słowników python. Zapoznaj się z wszystkimi naszymi innymi artykułami w języku Python 10 podstawowych przykładów w języku Python, które pomogą Ci szybko się nauczyć 10 podstawowych przykładów w języku Python, które pomogą Ci szybko się nauczyć przejście do Pythona tak szybko, jak to możliwe. więcej wskazówek w Pythonie 5 kursów, które zabiorą Cię z Python Beginner na Pro 5 kursów, które zabiorą Cię z Python Beginner na Pro Te pięć kursów nauczy Cię wszystkiego o programowaniu w Python, jednym z najgorętszych obecnie języków. . Jeśli masz inne przypadki użycia, które Twoim zdaniem powinny zostać uwzględnione, daj nam znać w komentarzach poniżej!
Kredyty obrazkowe: viper345 / Shutterstock