Also, bis jetzt sieht der Code so aus (er funktioniert sogar!!!:D)
Code: Alles auswählen
datei = file('F:\Test.txt','r')
daten = datei.read() #nimmt den Zeilenumbruch nicht mit
datei.close()
liste = daten.split("\n") # das ist der Zeilen umbruch
for i in range(len(liste)):
woerter = liste[i].split(" - ")
d1 = {woerter[0]:woerter[1]} #w0 = Interpret / w1 = Titel
d2 = {woerter[1]:woerter[0]}
Check1 = raw_input('Kennen sie den Interpreten? ')
if Check1 == "nein":
Check2 = raw_input('Kennen sie den Titel? ')
if Check2 == "ja":
Suchabfrage1 = raw_input('Wie heisst der Titel? ')
if d2.has_key(Suchabfrage1):
print d2[Suchabfrage1]
else:
print 'Kein Eintrag!'
else:
print 'Error'
elif Check1 == "ja":
Suchabfrage2 = raw_input('Wie heißt der Interpret? ')
if d1.has_key(Suchabfrage2):
print d1[Suchabfrage2]
else:
print 'Kein Eintrag'
Und zwar funktioniert es so lange, bis pro Interpret nur ein Titel in der Test.txt steht. Da ich weiß (!) das man nicht denselben Schlüssel mehrmals ins dict schreiben kann, muss ich das irgenwie umgehen. Meine Idee wären ein paar Zeilen, die beim Hinzufügen von Elementen ins Dictionary schauen, ob der Schlüssel bereits vergeben ist, und wenn ja, das der Wert einfach noch an den entsprechenden Wert angehängt wird.
Wie ich die Abfrage schreiben kann weiß ich schon (mit try und so ), aber die Frage ist wie ich es schaffe ihm zu sagen, das der Wert hintenangehängt werden soll.
Ok, ich muss es halt der Werteliste für den entsprechenden Key hinzufügen, aber muss ich dann wirkilch jeder einzelnen Werteliste eine Variable zuordnen um das dann mit x.append(y) zu realisieren??