/ / Wörterbuch mit mehreren Zeichenfolgenwerten für einen Schlüssel - Python, Wörterbuch

Wörterbuch mit mehreren String-Werten für einen Schlüssel - Python, Dictionary

Ich brauche ein Wörterbuch, das aus vielen Schlüsseln besteht, und die Werte müssen eine Liste sein, die viele Zeichenfolgen enthält. (in Python)

Ich habe es versucht:

d1[key].append(value)

aber Python sagt:

AttributeError: "str" object has no attribute "append".

Ich brauche so etwas wie: {a:[b,c,d,e],b:[t,r,s,z]....}

Was könnte ich tuen?

Danke im Voraus.

Antworten:

4 für die Antwort № 1

Sie können ein collections.defaultdict:

>>> from collections import defaultdict
>>>
>>> d = defaultdict(list)
>>> d["key"].append(5)
>>> d
defaultdict(<type "list">, {"key": [5]})
>>> dict(d)
{"key": [5]}

2 für die Antwort № 2

Versuche dies:

d1["something"] = []
d1["something"].append("a string")
d1["something"].append("another string")
d1["another"] = []
d1["another"].append("woohoo!")

Oder mit defauldict:

from collections import defaultdict

d1 = defaultdict(list)
d1["something"].append("a string")
d1["something"].append("another string")
d1["another"].append("woohoo!")

Oder mit setdefault:

d1 = {}
d1.setdefault("something", []).append("a string")
d1.setdefault("something", []).append("another string")
d1.setdefault("another", []).append("woohoo!")

2 für die Antwort № 3

Wenn Sie ein Wörterbuch mit Listen haben, können Sie es verwenden setdefault Methode:

d1.setdefault(key, []).append(value)

Aber für mich sieht es so aus, als hättest du ein Wörterbuch mit Streichern und d1[key] gibt dir String statt Liste. Es könnte passieren, wenn Sie beim Hinzufügen des ersten Listenelements Folgendes verwendet haben:

d1[key] = value1

und jetzt Wert des Wörterbuchs für den Schlüssel key ist Zeichenfolge. Versuchen Sie stattdessen Folgendes:

d1[key] = [value1]

und dann kannst du anrufen append Methode, weil d1 [Schlüssel] Liste ist


0 für die Antwort № 4

Sie müssen das Element von erstellen dict Als ein list Vor dir einen anhang.

d1[key] = []
d1[key].append(value)