Hallo,
ich sitze gerade an einer Aufgabe, bei der ich aus einer Textdatei/Tabelle ein Dictionary erstellen will.
Die Tabelle hat 5 Spalten, allerdings sehr viele Zeilen.
Als Keys sollen jeweils das erste Wort in der Zeile benutzt werden.
Bisher habe ich meine Keys jedoch immer nur manuell eingegeben und dann die Werte mit .append(datensatz.split()[0]) den jeweiligen Keys zugeordnet.
Ich konnte bisher nichts finden, bevor ich also ewig nach einer Lösung suche, die es evtl. überhaupt nicht gibt, folgende Frage:
Gibt es eine Möglichkeit, die Keys z.B. in einer Schleife festzulegen, und mit den übrigen Werten aus einer Zeile zu befallen?
Herzliche Grüße
Luki
Keys in Dictionary
Wenn ich dich richtig verstehe, dann ist die Antwort "natuerlich". Du kannst in einer for-schleife so viele Eintraege in einem dictionary erzeugen, wie du willst. ZB so:
Code: Alles auswählen
import io
import csv
import pprint
DATA = """a,1,2,3,4
b,5,6,7,8
"""
def main():
result = {}
reader = csv.reader(io.StringIO(DATA))
for row in reader:
result[row[0]] = row[1:]
pprint.pprint(result)
if __name__ == '__main__':
main()
Danke für Eure raschen Antworten!
So habe ich es auch in meinem Programm gemacht, bis mir aufgefallen ist, dass die Keys nicht die Spalte, sondern die Zeilen umfassen sollten.
Daher habe ich im Moment noch keinen Code, den es sich lohnt hier zu zeigen.
Ich versuche es bei mir umzusetzen - falls ich noch Fragen habe, habe ich jetzt ja dann Code zum zeigen.
Tausend Dank dafür
Liebe Grüße
Also bisher habe ich das immer nach folgendem Aufbau gemacht:
Code: Alles auswählen
datei = open("Datei.dat","r")
dateiinhalt = datei.readlines()
datei.close()
Datenbank = {}
Datenbank["Spalte1"] = []
Datenbank["Spalte2"] = []
for datensatz in dateiinhalt:
try:
Datenbank["Spalte1"].append(datensatz.split()[0])
Datenbank["Spalte2"].append(datensatz.split()[1])
except:
print("... das klappte nicht:", datensatz)
Daher habe ich im Moment noch keinen Code, den es sich lohnt hier zu zeigen.
Der Teil mit der for-Schleife sieht aber genau nach dem aus, was ich gesucht habe!__deets__ hat geschrieben: ↑Donnerstag 8. Juli 2021, 15:12 Wenn ich dich richtig verstehe, dann ist die Antwort "natuerlich". Du kannst in einer for-schleife so viele Eintraege in einem dictionary erzeugen, wie du willst. ZB so:
Code: Alles auswählen
import io import csv import pprint DATA = """a,1,2,3,4 b,5,6,7,8 """ def main(): result = {} reader = csv.reader(io.StringIO(DATA)) for row in reader: result[row[0]] = row[1:] pprint.pprint(result) if __name__ == '__main__': main()
Ich versuche es bei mir umzusetzen - falls ich noch Fragen habe, habe ich jetzt ja dann Code zum zeigen.
Tausend Dank dafür
Liebe Grüße