Python Dictionary

In diesem Tutorial erfahren Sie alles über Python-Wörterbücher. wie sie erstellt werden, auf sie zugreifen, sie hinzufügen, Elemente daraus entfernen und verschiedene integrierte Methoden.

 

Python-Wörterbuch ist eine ungeordnete Sammlung von Elementen. Jedes Element eines Wörterbuchs hat a key/value Paar.

Wörterbücher sind optimiert, um Werte abzurufen, wenn der Schlüssel bekannt ist.

 


 

 

Creating Python Dictionary

 

Das Erstellen eines Wörterbuchs ist so einfach wie das Platzieren von Elementen in geschweiften Klammern {} durch Kommata abgetrennt.

 

Ein Artikel hat a key und ein entsprechendes value das wird als Paar ausgedrückt (key: value).

 

Während die Werte einen beliebigen Datentyp haben und sich wiederholen können, müssen Schlüssel einen unveränderlichen Typ haben (String , Zahl  oder Tupel  mit unveränderlichen Elementen) und müssen eindeutig sein.

# empty dictionary
my_dict = {}

# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}

# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}

# using dict()
my_dict = dict({1:'apple', 2:'ball'})

# from sequence having each item as a pair
my_dict = dict([(1,'apple'), (2,'ball')])

 

Wie Sie oben sehen können, können wir auch ein Wörterbuch mit dem erstellen built-in dict() Funktion.

 


 

 

Accessing Elements from Dictionary

 

Während die Indizierung mit anderen Datentypen verwendet wird, um auf Werte zuzugreifen, verwendet ein Wörterbuch keys. Schlüssel können entweder in eckigen Klammern verwendet werden [] oder mit dem get() method.

 

Wenn wir die eckigen Klammern verwenden [], KeyError wird ausgelöst, falls ein Schlüssel im Wörterbuch nicht gefunden wird. Auf der anderen Seite ist die get() Methode gibt zurück None wenn der Schlüssel nicht gefunden wird.

 

# get vs [] for retrieving elements
my_dict = {'name': 'Jack', 'age': 26}

# Output: Jack
print(my_dict['name'])

# Output: 26
print(my_dict.get('age'))

# Trying to access keys which doesn't exist throws error
# Output None
print(my_dict.get('address'))

# KeyError
print(my_dict['address'])

 

Output

Jack
26
None
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    print(my_dict['address'])
KeyError: 'address'

 


 

 

Changing and Adding Dictionary elements
 

Wörterbücher sind veränderbar. Wir können neue Elemente hinzufügen oder den Wert vorhandener Elemente mithilfe eines Zuweisungsoperators ändern.

 

Wenn der Schlüssel bereits vorhanden ist, wird der vorhandene Wert aktualisiert. Falls der Schlüssel nicht vorhanden ist, wird ein neuer (key: value) paar wird dem Wörterbuch hinzugefügt.

# Changing and adding Dictionary Elements
my_dict = {'name': 'Jack', 'age': 26}

# update value
my_dict['age'] = 27

#Output: {'age': 27, 'name': 'Jack'}
print(my_dict)

# add item
my_dict['address'] = 'Downtown'

# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)

 

Output

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}

 


 

 

 

Removing elements from Dictionary

 

Wir können ein bestimmtes Element aus einem Wörterbuch entfernen, indem wir die pop() method. Diese Methode entfernt ein Element mit dem bereitgestellten key und gibt die zurück value.

 

The popitem() Die Methode kann verwendet werden, um ein beliebiges . zu entfernen und zurückzugeben (key, value) Elementpaar aus dem Wörterbuch. Alle Elemente können auf einmal entfernt werden, indem Sie dieclear() method.

 

Wir können auch die del Schlüsselwort, um einzelne Elemente oder das gesamte Wörterbuch selbst zu entfernen.

# Removing elements from a dictionary

# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# remove a particular item, returns its value
# Output: 16
print(squares.pop(4))

# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)

# remove an arbitrary item, return (key,value)
# Output: (5, 25)
print(squares.popitem())

# Output: {1: 1, 2: 4, 3: 9}
print(squares)

# remove all items
squares.clear()

# Output: {}
print(squares)

# delete the dictionary itself
del squares

# Throws Error
print(squares)

 

Output

16
{1: 1, 2: 4, 3: 9, 5: 25}
(5, 25)
{1: 1, 2: 4, 3: 9}
{}
Traceback (most recent call last):
  File "<string>", line 30, in <module>
    print(squares)
NameError: name 'squares' is not defined

 


 

Python Dictionary Methods

Methoden, die mit einem Wörterbuch verfügbar sind, sind unten tabellarisch aufgeführt. Einige davon wurden bereits in den obigen Beispielen verwendet.

 

Method Description
clear() Removes all items from the dictionary.
copy() Returns a shallow copy of the dictionary.
fromkeys(seq[, v]) Returns a new dictionary with keys from seq and value equal to v (defaults to None).
get(key[,d]) Returns the value of the key. If the key does not exist, returns d (defaults to None).
items() Return a new object of the dictionary’s items in (key, value) format.
keys() Returns a new object of the dictionary’s keys.
pop(key[,d]) Removes the item with the key and returns its value or d if key is not found. If d is not provided and the key is not found, it raises KeyError.
popitem() Removes and returns an arbitrary item (key, value). Raises KeyError if the dictionary is empty.
setdefault(key[,d]) Returns the corresponding value if the key is in the dictionary. If not, inserts the key with a value of d and returns d (defaults to None).
update([other]) Updates the dictionary with the key/value pairs from other, overwriting existing keys.
values() Returns a new object of the dictionary’s values

 

Hier sind einige Beispiele für Anwendungsfälle dieser Methoden.

# Dictionary Methods
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)

# Output: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)

for item in marks.items():
    print(item)

# Output: ['English', 'Math', 'Science']
print(list(sorted(marks.keys())))

 

Output

{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)
['English', 'Math', 'Science']

 


 

Python Dictionary Comprehension

 

Das Wörterbuchverständnis ist eine elegante und prägnante Möglichkeit, ein neues Wörterbuch aus einem iterierbaren in Python zu erstellen.

Das Wörterbuchverständnis besteht aus einem Ausdruckspaar (key: value) gefolgt von einem for anweisung in geschweiften Klammern {}.

Hier ist ein Beispiel, um ein Wörterbuch zu erstellen, bei dem jedes Element ein Paar aus einer Zahl und seinem Quadrat ist.

# Dictionary Comprehension
squares = {x: x*x for x in range(6)}

print(squares)

 

Output

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

 

Dieser Code ist äquivalent zu

squares = {}
for x in range(6):
    squares[x] = x*x
print(squares)

 

Output

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

 

Ein Wörterbuchverständnis kann optional weitere for oder if  anweisungen enthalten.

Eine optionale if anweisung kann Elemente herausfiltern, um das neue Wörterbuch zu bilden.

Hier sind einige Beispiele, um ein Wörterbuch mit nur ungeraden Elementen zu erstellen.

# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}

print(odd_squares)

 

Output

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

 

Weitere Informationen zum Wörterbuchverständnis finden Sie unter Python Dictionary Comprehension.


 

Other Dictionary Operations

 

Dictionary Membership Test

 

Wir können testen, ob akey in einem Wörterbuch ist oder das Schlüsselwort nicht verwendet in. Beachten Sie, dass der Mitgliedschaftstest nur für die keys und nicht für die values.

# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: True
print(1 in squares)

# Output: True
print(2 not in squares)

# membership tests for key only not value
# Output: False
print(49 in squares)

 

Output

True
True
False

 

Iterating Through a Dictionary

 

Wir können jeden Schlüssel in einem Wörterbuch mit a . iterieren for Schleife.

# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

 

Output

1
9
25
49
81

 


 

 

Dictionary Built-in Functions

 

Built-in Funktionen wie all(), any(), len(), cmp(), sorted(), usw. werden häufig mit Wörterbüchern verwendet, um verschiedene Aufgaben auszuführen.

 

Function Description
all() Return True if all keys of the dictionary are True (or if the dictionary is empty).
any() Return True if any key of the dictionary is true. If the dictionary is empty, return False.
len() Return the length (the number of items) in the dictionary.
cmp() Compares items of two dictionaries. (Not available in Python 3)
sorted() Return a new sorted list of keys in the dictionary.

 

Hier sind einige Beispiele, die integrierte Funktionen verwenden, um mit einem Wörterbuch zu arbeiten.

# Dictionary Built-in Functions
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: False
print(all(squares))

# Output: True
print(any(squares))

# Output: 6
print(len(squares))

# Output: [0, 1, 3, 5, 7, 9]
print(sorted(squares))

 

Output

False
True
6
[0, 1, 3, 5, 7, 9]