2016-04-07 18 views
0

Ich bin ziemlich neu in der Programmierung, und habe nach der Antwort gesucht, aber ich denke, ich habe die falsche Frage bei meinen Recherchen gestellt.Lesen von Strings aus Textdatei als Variable in Python

Grundsätzlich versuche ich Zeichenfolgen aus einer CSV-Datei als Variablen als Argumente zu interpretieren.

Wie auch immer, ich habe den folgenden Code:

a = libtcod.Color(0, 176, 240) 
b = libtcod.Color(100, 155, 200) 
c = libtcod.Color(80, 055, 100) 

def create_room(x, y, color): 
    pass 


y = 1 

with open('Map.txt') as csvfile: 
     readCSV = csv.reader(csvfile, delimiter = ',') 
     for row in readCSV: 
      x = 1 
      for column in row: 
       create_room(x, y, color) 
       x += 1 
      y += 1 

, die über eine CSV-Datei ausgeführt wird und gibt die Spalte Zeichenfolge für jedes x und y-Wert in der Datei.

Wenn also die CSV-Datei 'a, b, c' liest, möchte ich create_room (1, 1, a), create_room (2, 1, b) und create_room (3, 1, c).

Stattdessen rufe ich an create_room (1, 1, 'a'), create_room (2, 1, 'b') und create_room (3, 1, 'c'), was mir nicht gegeben wird was ich möchte.

Das scheint so zu sein, das sollte ziemlich einfach zu lösen sein, aber ich habe entweder die Antwort nicht gefunden oder vielleicht eine Antwort gefunden, aber ich habe es nicht bemerkt, heh (wieder bin ich ziemlich neu bei Python und Programmierung im Allgemeinen).

Jede Hilfe wäre willkommen!

Antwort

0

Anstelle der drei Variablen a, b und c sollten Sie ein Wörterbuch erstellen. Auf diese Weise können die Saiten nachschlagen kann 'a', 'b' und 'c' ihren jeweiligen Wert zu erhalten:

#Initialize a dictionary with the appropriate values 
color_lookup = { 
    'a': libtcod.Color(0, 176, 240), 
    'b': libtcod.Color(100, 155, 200), 
    'c': libtcod.Color(80, 055, 100) 
} 

#Then call create_room like this 
create_room(x, y, color_lookup[color])