Keine append-string-dictionary Schlüssel
Ich programmiere schon für weniger als vier Wochen und habe ein problem, dass ich nicht herausfinden. Ich versuche, fügen Sie einen string-Wert zu einem vorhandenen Schlüssel mit einem vorhandenen string gespeichert, aber wenn ein Wert schon vorhanden ist, in der ich den key erhalten "str-Objekt hat kein Attribut 'append'.
Habe ich versucht, drehen Sie den Wert auf der Liste aber das funktioniert auch nicht. Ich müssen zu benutzen .append () - Attribut, weil sich update einfach ersetzt den Wert in clientKey statt dem Anhängen, was Wert ist bereits gespeichert. Nach einigen mehr Forschung, ich verstehe jetzt, dass muss ich irgendwie aufteilen der gespeicherte Wert in clientKey.
Jegliche Hilfe würde sehr geschätzt werden.
data = {}
while True:
clientKey = input().upper()
refDate = strftime("%Y%m%d%H%M%S", gmtime())
refDate = refDate[2 : ]
ref = clientKey + refDate
if clientKey not in data:
data[clientKey] = ref
elif ref in data[clientKey]:
print("That invoice already exists")
else:
data[clientKey].append(ref)
break
- Ich danke Ihnen allen sehr für die Hilfe. Es läuft, wie es sollte. Außerdem Schätze ich die Beratung auf defaultdict. Es klingt wie eine vernünftige Art und Weise zu vereinfachen und kompakter code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht
.append()
zu einem string, da ein string nicht verändert werden. Wenn Sie möchten, dass Ihr Wörterbuch Wert, um in der Lage sein, um die mehrere Artikel enthalten, es sollte ein container-Typ, wie ein list. Der einfachste Weg dies zu tun ist, nur um das einzelne Element als Liste in den ersten Platz.Nun können Sie
data[clientkey].append()
den ganzen Tag lang.Einen einfacheren Ansatz für dieses problem ist die Verwendung
collections.defaultdict
. Dies erzeugt automatisch das Element, wenn es nicht da ist, wodurch der code sehr viel einfacher.Sie begann mit einem string-Wert, und Sie kann nicht rufen
.append()
auf einer Schnur. Beginnen Sie mit einer Liste von Wert statt:Nun
data[clientKey]
Referenzen ein list-Objekt mit einem string in es. Liste Objekte tun haben eineappend()
Methode.Wenn Sie möchten, um das Anhängen der Zeichenfolge, die Sie verwenden können
data[clientKey]+= ref