W Pythonie słownik to plik nieuporządkowany zbiór wartości danych to mogłoby być używany do przechowywania wartości danych podobnie jak mapa. W przeciwieństwie do innych typów danych, które mogą zawierać tylko jedną wartość na element, słowniki mogą również zawierać kluczowa wartość para. Aby stworzyć słownik bardziej wydajny , oferowana jest para klucz-wartość.
Jeśli chodzi o dostęp do atrybutów, kropka „.” (jak w x.any_atrybut ) to wszystko, co zna większość użytkowników. Po prostu powiedziałem, dostęp do atrybutów to proces uzyskiwania obiektu, który jest połączony z obiektem, który już posiadasz . Może się to wydawać bardzo proste dla kogoś, kto używa Pythona, bez wchodzenia za daleko w szczegóły. Jednak za tym stosunkowo prostym procesem wiele się dzieje.
Co to jest _dict_?
Każdy moduł ma unikalną właściwość zwaną __dykt__. Ten słownik zawiera tablicę symboli modułu . (Zapisywalne) cechy elementu są przechowywane w słowniku lub innym obiekcie mapującym.
Mówiąc prościej, każdy obiekt w Pythonie ma właściwość oznaczona symbolem __dict__ . Ponadto obiekt ten ma wszystkie właściwości, które zostały dla niego określone. Inna nazwa __dict__ to mapowanie proxy obiekt. Ze słownika możemy korzystać poprzez stosując właściwość __dict__ do obiektu klasy.
Składnia:
object.__dict__
Przykład :
class AnimalClass: def __init__(self,identity,age): self.identity = identity self.age = age def feature(self): if self.age == '10': return True else: return False ac = AnimalClass('Lion','10') print(ac.__dict__)
Wyjście:
{'identity': 'Lion', 'age': '10'}
Przykład 2:
Ten przykład pokaże, że za pomocą atrybut __dict__ , można stworzyć słownik z dowolnego obiektu:
# class Flowers is defined class Flowers: # constructor def __init__(self): # keys are being initialized with # their corresponding values self.Rose = 'red' self.Lily = 'white' self.Lotus = 'pink' def displayit(self): print('The Dictionary from object fields belongs to the class Flowers :') # object animal of class Animals flower = Flowers() # calling displayit function flower.displayit() # calling the attribute __dict__ on flower # object and making it print it print(flower.__dict__)
Wyjście:
The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'}
Przykład 3:
def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__)
Wyjście:
{'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None}
Używanie słownika bez użycia __dict__ w Pythonie:
Tworzenie słownika:
W Pythonie słownik można utworzyć, dołączając plik a lista wpisów ujęta w nawiasy klamrowe i oddzielająca je przecinkiem . Słownik przechowuje pary wartości, gdzie jeden element pary jest kluczem, a drugi jego Kluczowa wartość . W odróżnieniu Klucze, Który nie mogą być powtarzane i muszą być niezmienne, wartości w słownikach mogą mieć dowolny typ danych i mogą być powielane .
Elementy są Oddzielone przecinkami , każdy klucz jest rozróżniany na podstawie jego wartości przez dwukropek (:) i cała struktura jest zawarta w nawiasy klamrowe . Słownik całkowicie pozbawiony wszystkich słów jest napisany w następujący sposób: {} .
Klucze słownika muszą być niezmienny , Jak na przykład liczby całkowite, krotki lub ciągi znaków , chociaż wartości mogą być dowolnego typu. W słownikach Pythona ta sama nazwa klucza zapisana w inny sposób jest uważana za odrębny klucz. Proszę o tym pamiętać W kluczach słownika rozróżniana jest wielkość liter ; klucze o podobnej nazwie, ale różniące się wielkością liter, będą obsługiwane inaczej.
Przykład :
pole listy HTML
# Creating a Dictionary # using Integer Keys only Dict = {1: 'JAVA', 2: 'T', 3: 'POINT'} print(' Creating a Dictionary by using Integer Keys : ') print(Dict) # Creating a Dictionary # using various Mixed keys Dict = {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]} print(' Creating a Dictionary by using Mixed Keys : ') print(Dict)
Wyjście:
Creating a Dictionary by using Integer Keys : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using Mixed Keys : {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]}
The wbudowana metoda dict() pozwala również na tworzenie słowników . Po prostu kładąc dwa nawiasy klamrowe {} razem spowoduje pusty słownik .
Przykład :
# Creating an empty Dictionary myDict = {} print('This is an Empty Dictionary: ') print(myDict) # Creating a Dictionary # using the dict() method myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT'}) print(' Creating a Dictionary by using the dict() method : ') print(myDict) # Creating a Dictionary # using each item as a different Pair myDict = dict([(1, 'JavaTpoint'), (2, 'Great')]) print(' Creating a Dictionary by using each item as a different pair : ') print(myDict)
Wyjście:
This is an Empty Dictionary: {} Creating a Dictionary by using the dict() method : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using each item as a different pair : {1: 'JavaTpoint', 2: 'Great'}
Złożoności związane z tworzeniem słownika:
- Złożoność czasowa: O(długość(dykt))
- Złożoność przestrzeni: NA)
Zagnieżdżone słowniki:
Jest to forma słownika, w której występuje jeden lub więcej niż jeden klucze mają dołączony słownik jako wartość klucza.
Przykład :
# Creating a Nested Dictionary # as mentioned above using a dictionary as a value to a key in # a dictionary myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}) print(' Creating a Nested Dictionary : ') print(myDict)
Wyjście:
Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}
Dodawanie elementów do słownika:
Tam są kilka metod dodawania elementów do słownika Pythona. Określając jednocześnie wartość i klucz, na przykład Dict[Key] = „Wartość”, Jednorazowo do słownika można dodać jedną wartość. Używając wbudowana funkcja update(). , można modyfikować istniejącą wartość w słowniku. Istniejący słownik można również rozszerzyć o zagnieżdżone wartości kluczy .
Uwaga: podczas dodawania wartości wartość jest aktualizowana, jeśli kombinacja klucz-wartość już istnieje. Jeżeli nie, do słownika dodawany jest nowy klucz i wartość.
Przykład :
# Creating Empty Dictionary myDict = {} print('Empty Dictionary: ') print(myDict) # Adding elements only one at a time myDict[0] = 'Java' myDict[3] = 'T' myDict[6] = 41 print(' Dictionary after the addition of 3 elements: ') print(myDict) # Adding a set of values # to a particular Key myDict['settingValues'] = 7, 8, 9 print(' Dictionary after the adding a set of values to a key : ') print(myDict) # Updating the existing Key's Value myDict[3] = 'tPoint' print(' Dictionary after Updated key value: ') print(myDict) # Adding Nested Key value to Dictionary myDict[8] = {'Nested' :{'A' : 'boy', 'B' : 'Girl'}} print(' Dictionary after Addition of a Nested Key: ') print(myDict)
Wyjście:
Empty Dictionary: {} Dictionary after the addition of 3 elements: {0: 'Java', 3: 'T', 6: 41} Dictionary after the adding a set of values to a key : {0: 'Java', 3: 'T', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Updated key value: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Addition of a Nested Key: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9), 8: {'Nested': {'A': 'boy', 'B': 'Girl'}}}
Złożoność dodawania elementów do słownika:
- Złożoność czasowa: O(1)/O(n)
- Złożoność przestrzeni: O(1)
Dostęp do elementów słownika:
Słownik posługuje się Klucze , podczas gdy inne typy danych wymagają indeksowania w celu pobrania wartości. Klucze mogą być używane z funkcja get(). Lub w nawiasach kwadratowych [].
przypadki testowe junit
W przypadku, gdy A nie można znaleźć klucza w słowniku, Pojawia się KeyError jeśli użyjemy nawiasy kwadratowe []. Z drugiej strony, jeśli nie można zlokalizować klucza, plik Funkcja get() zwraca Brak.
Przykład :
# Python program to demonstrate the # accessing of an element, from a Dictionary # Creating a Dictionary myDict = {1: 'Java', 'name': 'T', 2: 'Point', 4: 'Website'} # accessing an element using key print('Accessing an element using the key:') print(myDict['name']) print('Accessing another element using the key:') print(myDict[4]) # accessing an element using the get() method print('Accessing an using the get() method:') print(myDict.get(2)) print('Accessing another using the get() method:') print(myDict.get(1))
Wyjście:
Accessing an element using the key: T Accessing another element using the key: Website Accessing an using the get() method: Point Accessing another using the get() method: Java
Złożoność dostępu do elementów w słowniku:
- Złożoność czasu: O(1)
- Złożoność przestrzeni: O(1)
Dostęp do elementu zagnieżdżonego słownika:
Możemy skorzystać z pomocy technika indeksowania []. aby uzyskać wartość istniejącego klucza w pliku zagnieżdżony słownik .
Przykład :
# Creating a Dictionary myDict = {'myDict1': {3: 'JavatPoint'}, 'myDict2': {'Info.': 'Website'}} # Accessing the elements using the key print(myDict['myDict1']) print(myDict['myDict1'][3]) print(myDict['myDict2']['Info.'])
Wyjście:
{3: 'JavatPoint'} JavatPoint Website
Wbudowane metody słownikowe:
jasne() :
Funkcja dict.clear() eliminuje każdą parę klucz-wartość ze słownika.
deterministyczne automaty skończone
Kopiuj() :
A płytsza kopia słownika jest zwracany metodą dict.copy().
zkluczy():
Korzystanie z dostarczonej iteracji (ciąg, lista, zestaw lub krotka) jako klucze i określoną wartość, funkcja dict.fromkeys() tworzy nowy słownik .
Dostawać() :
Ten podaje powiązaną wartość z podanym kluczem.
rzeczy() :
A obiekt widoku słownika , który oferuje dynamiczną prezentację elementów słownika w postaci listy par klucz-wartość jest zwracany za pomocą funkcji dict.items(). Kiedy słownik zostanie zaktualizowany, to obiekt widoku jest również aktualizowany .
dykt.keys() :
Funkcja dict.keys() zwraca obiekt widoku słownika ze słownikiem lista kluczy.
Muzyka pop() :
Ten zwraca wartość klucza po jego usunięciu . Jeśli w słowniku brakuje klucza, zostanie wygenerowany komunikat a Błąd klucza lub zwraca domyślna wartość jeśli taki został zapewniony.
pić():
Ten usuwa jeden element ze słownika i zwraca krotkę par (klucz, wartość). The Ostatnie weszło, pierwsze wyszło (LIFO) sekwencja służy do zwracania par.
ustawdomyślnie() :
Ten zwraca wartość słownika dla danego klucza . Jeśli nie można znaleźć klucza, klucz znajduje się w zestawie domyślna wartość jest dodany. Ustawia Nic jako domyślna wartość jeśli nie jest dostarczony.
wartości():
The obiekt widoku słownika, który oferuje widok dynamiczny każdej wartości, która jest obecny w słowniku, jest zwracany za pomocą funkcji dict.values(). Kiedy słownik zostanie zaktualizowany, to obiekt widoku jest również aktualizowany .
aktualizacja() :
bajtów do łańcucha Pythona
A słownik lub dowolny iterowalny z parami klucz-wartość , takie jak krotka, można zaktualizować za pomocą funkcji dict.update().
Przykład :
# Example to demonstrate all dictionary methods #Creating a Dictionary mydict1={1:'HTML',2:'CSS',3:'Javascript',4:'Python'} #copy method mydict2=mydict1.copy() print(mydict2) #clear method mydict1.clear() print(mydict1) #get method print(mydict2.get(1)) #items method print(mydict2.items()) #keys method print(mydict2.keys()) #pop method mydict2.pop(4) print(mydict2) #popitem method mydict2.popitem() print(mydict2) #update method mydict2.update({2:'C++'}) print(mydict2) #values method print(mydict2.values())
Wyjście:
{1: 'HTML', 2: 'CSS', 3: 'Javascript', 4: 'Python'} {} HTML dict_items([(1, 'HTML'), (2, 'CSS'), (3, 'Javascript'), (4, 'Python')]) dict_keys([1, 2, 3, 4]) {1: 'HTML', 2: 'CSS', 3: 'Javascript'} {1: 'HTML', 2: 'CSS'} {1: 'HTML', 2: 'C++'} dict_values(['HTML', 'C++'])
Różnica między słownikiem a listą:
Struktury danych takie jak lista i słownik są zasadniczo odmienne. Jakiś zamówiona seria artykułów można przechowywać w lista abyśmy mogli się do niego zaindeksować lub iterować po nim. Listy można również zmieniać nawet po ich wygenerowaniu, ponieważ można je zmieniać. The Słownik Pythona jest przechowywanie klucz-wartość i wdrożenie A tablica mieszająca . Nie ma żadnej konkretnej sekwencji i wymaga kluczy, które można łączyć. Dodatkowo umożliwia szybkie wyszukiwanie kluczowych elementów.
A listy elementy zawierają następujące funkcje:
- O ile nie zostaną specjalnie zmienione zachować dotychczasowy porządek (na przykład sortując listę).
- Mogą być dowolnego typu, a nawet kombinacja rodzajów .
Charakterystyka słownik elementy są następujące:
- Każdy wpis ma wartość i klucz .
- Zamówienia są nie jest gwarantowane .
Stosowanie :
Używamy A słownik jeśli mamy zestaw odrębnych kluczy odpowiadających wartościom , ale lista kiedy mamy uporządkowana grupa rzeczy .
Wniosek :
- W języku komputerowym słowniki to rodzaj struktury danych używanej do przechowywania informacji to jest w jakiś sposób powiązane.
- Każdy moduł ma unikalną właściwość zwaną __dykt__.
- __dykt__ zawiera tablicę symboli modułu .
- Właściwości elementu są przechowywane w pliku a obiekt mapujący.
- Każdy obiekt w Pythonie ma właściwość oznaczona symbolem __dict__ .
- Inna nazwa __dict__ jest również znana jako mapujący obiekt proxy.
- Nazywa się dwa składniki słownika Pythona Klucze i wartości .
- Ty może nie otrzymać swoje dane w podobnej kolejności, w jakiej je wprowadzasz, ponieważ słowniki nie przechowują danych w żadnej określonej kolejności.
- Klucze będą się składać z zaledwie jedna sprawa.
- Wartości mogą być liczby całkowite, listy, listy wewnątrz list itp.
- Nie może być więcej niż jeden wpis na klucz (niedozwolone jest duplikowanie klucza)
- Klucze słownika muszą być niezmienny , Jak na przykład liczby całkowite, krotki lub ciągi znaków , chociaż wartości mogą być dowolnego typu.
- Słownik W kluczach rozróżniana jest wielkość liter ; w słownikach Pythona ta sama nazwa klucza zapisana inaczej jest uważana za a odrębny klucz .