Ich bin neu in Python und ich versuche, eine Textdatei in zwei Wörterbücher mit Werten als Liste zu lesen.Lesen in zwei Wörterbücher aus der gleichen Datei (Python)
Die Datei enthält folgende Komponenten:
term1 doc1 doc3 doc4
term2 doc5 doc1
term3 doc6 doc2
Ich versuche, zwei Wörterbücher aus der gleichen Datei zu erstellen, eine, die die Bedingungen als Schlüssel und Werte als docs haben wird und die anderen das Gegenteil sein.
inverted_index = {}
forward_index = {}
with open('term_sample.txt') as file:
for line in file:
items = line.split()
term, doc = items[0], items[1:]
for doc in items[1:]
inverted_index[term] = [doc]
forward_index[doc] = [term]
print(inverted_index)
print(forward_index)
mit dem, was ich bisher getan habe ich die folgende Ausgabe bekommen:
{'term2': ['doc1'], 'term1': ['doc4'], 'term3': ['doc2']}
{'doc3': ['term1'], 'doc6': ['term3'], 'doc4': ['term1'], 'doc5': ['term2'], 'doc1': ['term2'], 'doc2': ['term3']}
aber dies ist die Ausgabe, die ich suche:
{'term1': ['doc1','doc3','doc4'], 'term2': ['doc5','doc1'], 'term3': ['doc6','doc2']}
{'doc1': ['term1','term2'], 'doc3': ['term1'], 'doc4': ['term1'], 'doc5': ['term2'], 'doc6': ['term3'], 'doc2': ['term3']}
Bitte helfen ich, um das zu beheben!
FWIW, dies funktioniert auch mit einem leeren Listenliteral '[]' (anstatt den 'list()' -Konstruktor aufzurufen), um das Standardobjekt für '.setdefault' bereitzustellen. –
@ PM2Ring Guter Punkt. Ich habe nur den Code von [dieser Frage] kopiert (http://stackoverflow.com/questions/327534/storing-and-updating-lists-in-python-dictionaries-why-does-thishappen) – Barmar
Jetzt sehe ich Beide Stile gibt es an verschiedenen Orten. – Barmar