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 № 1Sie 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)