2017-03-18 3 views
1

Ich versuche, eine Funktion zu schreiben, die eine Datei mit zwei Zeilen öffnet, die erste mit der Zeichenfolge die Schlüssel zu geben und die zweite mit der Zeichenfolge, die Werte gebenÖffnen der Datei und setzen Linien in separate Strings

I Bisher die haben folgende

f = open('PT.txt','r') 

string = "" 
while 1: 
    line = f.readline() 
    if not line:break 
    string += line 

f.close() 

Dies ist der Inhalt von 'PT.txt'

abcdefghijklmnopqrstuvwxyz 
gikaclmnqrpoxzybdefhjstuvw 

bekomme ich folgende Ausgabe, wenn ich String drucken

Ich bin jetzt verwirrt, wie man jede Zeile auf einer eigenen Zeichenfolge erhält und wie man ein Wörterbuch erstellt.

möchte ich das Wörterbuch wie

{ 
    'a': 'g', 
    'b': 'i', 
    'c': 'k', 
    # etc 
} 
+0

Ja leider - für meine unpräzise Formulierung -newbie hier - eine Menge Lesung zu tun, aber immer noch ein bisschen verwirrt – chrischris

Antwort

1

Versuchen Sie folgendes:

fp = open('PT.txt','r') 
s1 = fp.readline() 
s2 = fp.readline() 
s = zip(s1, s2) 
ans = {key : val for key,val in s} 
+1

Danke funktioniert wie ein Zauber Ich habe eine kleine Bearbeitung statt der letzten Zeile Ich habe nur dict infront von zip - gibt die gleiche Ausgabe. By the way - wie zeige ich Codes in einem Kommentarbereich wie in Frage - anstatt es in ein Textfeld zu setzen – chrischris

+1

@chrischris 1. Tun 'dict (zip (s1, s2))' ist völlig in Ordnung, 'yi xiao' tat es in zwei Stufen, um es klarer zu machen. 2. Sie können keinen mehrzeiligen Code in Kommentare einfügen. Wenn Sie mehr Code bereitstellen müssen, um Ihre Frage zu erläutern, sollten Sie sie zur Frage hinzufügen. –

0
with open("filename") as infile: 
    lines = infile.readlines() 

Hinweis suchen: Sie Zeichenfolge nicht verwenden, oder einen anderen Befehl ein, oder Standard-Modulnamen als Variablennamen.

+1

'string' ist kein Typ Name, aber es _is_ den Namen ein Standardmodul, daher ist es eine gute Idee, es nicht als Variablennamen zu verwenden. –

Verwandte Themen