Dictionary mit mehreren Werten in Python

Hemank Mehtani 30 Januar 2023
  1. Verwenden einer benutzerdefinierten Funktion zum Hinzufügen mehrerer Werte zu einem Schlüssel in einem Dictionary
  2. Verwenden Sie das Modul defaultdict, um einem Schlüssel in einem Dictionary mehrere Werte hinzuzufügen
  3. Verwenden Sie die Methode setdefault(), um einem bestimmten Schlüssel in einem Dictionary mehrere Werte hinzuzufügen
Dictionary mit mehreren Werten in Python

Ein Dictionary in Python stellt eine Gruppe von Elementen in Form von Schlüssel-Wert-Paaren dar. Normalerweise haben wir einzelne Werte für einen Schlüssel in einem Dictionary.

Wir können jedoch die Werte für Schlüssel als Sammlung wie eine Liste haben. Auf diese Weise können wir mehrere Elemente im Dictionary für einen bestimmten Schlüssel haben.

Zum Beispiel,

d = {"a": [1, 2], "b": [2, 3], "c": [4, 5]}
print(d)

Ausgabe:

{'a': [1, 2], 'b': [2, 3], 'c': [4, 5]}

In diesem Tutorial werden verschiedene Methoden zum Anhängen mehrerer Werte als Liste in einem Dictionary in Python erläutert.

Verwenden einer benutzerdefinierten Funktion zum Hinzufügen mehrerer Werte zu einem Schlüssel in einem Dictionary

Wir können eine Funktion zum Anhängen von Schlüssel-Wert-Paaren in einem Dictionary erstellen, wobei der Wert eine Liste ist.

Zum Beispiel,

def dict1(sample_dict, key, list_of_values):
    if key not in sample_dict:
        sample_dict[key] = list()
    sample_dict[key].extend(list_of_values)
    return sample_dict


word_freq = {
    "example": [1, 3, 4, 8, 10],
    "for": [3, 10, 15, 7, 9],
    "this": [5, 3, 7, 8, 1],
    "tutorial": [2, 3, 5, 6, 11],
    "python": [10, 3, 9, 8, 12],
}
word_freq = dict1(word_freq, "tutorial", [20, 21, 22])
print(word_freq)

Ausgabe:

{'example': [1, 3, 4, 8, 10], 'for': [3, 10, 15, 7, 9], 'this': [5, 3, 7, 8, 1], 'tutorial': [2, 3, 5, 6, 11, 20, 21, 22], 'python': [10, 3, 9, 8, 12]}

Beachten Sie, dass wir im obigen Code eine Funktion dict1 mit sample_dict, key und list_of_values als Parameter innerhalb der Funktion erstellt haben. Die Funktion extend() hängt eine Liste als Wert für einen Schlüssel im Dictionary an.

Verwenden Sie das Modul defaultdict, um einem Schlüssel in einem Dictionary mehrere Werte hinzuzufügen

defaultdict ist ein Teil des Sammlungsmoduls. Es ist auch eine Unterklasse der dict-Klasse, die Dictionaryähnliche Objekte zurückgibt. Für einen nicht vorhandenen Schlüssel wird ein Standardwert angegeben.

Sowohl defaultdict als auch dict haben die gleiche Funktionalität, außer dass defaultdict nie einen keyerror auslöst.

Wir können es verwenden, um eine Sammlung von Tupeln in ein Dictionary zu konvertieren. Wir werden den Standardwert als Liste angeben. Immer wenn derselbe Schlüssel gefunden wird, wird der Wert als Liste angehängt.

Zum Beispiel,

from collections import defaultdict

s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
d = defaultdict(list)
for k, v in s:
    d[k].append(v)
sorted(d.items())
print(d)

Ausgabe:

defaultdict(<class 'list'>,
            {'rome': [1],
             'paris': [2, 4], 
             'newyork': [3],
             'delhi': [1]
            }) 

Verwenden Sie die Methode setdefault(), um einem bestimmten Schlüssel in einem Dictionary mehrere Werte hinzuzufügen

Die Methode setdefault() wird verwendet, um Standardwerte für den Schlüssel zu setzen. Wenn der Schlüssel vorhanden ist, gibt er einen Wert zurück. Andernfalls wird der Schlüssel mit einem Standardwert eingefügt. Der Standardwert für den Schlüssel ist none.

Wir werden die Liste mit dieser Methode als Werte für Schlüssel anhängen.

Zum Beispiel,

s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
data_dict = {}
for x in s:
    data_dict.setdefault(x[0], []).append(x[1])
print(data_dict)

Ausgabe:

{'rome': [1], 'paris': [2, 4], 'newyork': [3], 'delhi': [1]}

Verwandter Artikel - Python Dictionary