2016-05-29 5 views
0

ich eine Liste von x zurück bin versucht zu koordinieren und y Koordinatentupel nach einer Textdatei mit Zahlen darin zum Beispiel zu lesen:Zurückgeben eine Liste von x und y Tupeln

68,125 
113,69 
65,86 
108,149 
152,53 

ich gelernt habe der Punkt, an dem ich eine Liste von Zahlen, aber nicht als Paare in einem Tupel zurückgebe.

hier ist mein Code:

def read_numbers(filename): 
    numbers = [] 
    input_file = open(filename, "r") 
    content = input_file.readlines() 
    numbers = [word.strip() for word in content] 
    input_file.close() 
    return numbers 
def main(): 
    numbers = read_numbers('output.txt') 
    print(numbers) 

main() 
+0

Needs etwas wie folgt aussehen: [(68, 125), (113, 69), (65, 86), (108, 149) , (152, 53)] –

Antwort

0

Sie können jede Zeile lesen, dann geteilt, jede Zeile durch Komma und konvertiert jedes Stück dieser Spaltung in einem int Karte. Schließlich wandelt es in Tupel

coords = [tuple(map(int, line.split(","))) for line in lines] 

Dadurch wird die Ausgabe gibt:

[(68, 125), (113, 69), (65, 86), (108, 149), (152, 53)] 


Ihren vollständigen Code in etwa so aussehen könnte:

with open("output.txt") as f: 
    lines = f.readlines() 

coords = [tuple(map(int, line.split(","))) for line in lines] 
print(coords) 
+0

Vielen Dank für Ihre Hilfe –

0

ich einen Generator würde empfehlen, als Es erlaubt Ihnen, zusätzliche Kontrollstruktur zu verwenden, dann Listenverständnis:

def parse_file(file): 
    for line in file: 
     num1, num2 = line.split(",") #this can't be done in list comprehension 
     yield (int(num1), int(num2)) 

Dann wird Ihr read_numbers könnte wie folgt aussehen:

def read_numbers(filename): 
    with open(filename,"r") as f: 
     return list(parse_file(f)) 
+0

Vielen Dank für Ihre Hilfe –

Verwandte Themen