Variable aus Variable erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bernie70
User
Beiträge: 7
Registriert: Samstag 1. Mai 2010, 17:20

Hallo,

ist es möglich, eine Variable in einer Schleife in einer zweiten Variable einzufügen?

z. B.:

fl_liste = ['FL1234']

for fl in fl_liste:

if WP_+fl+ >0 and WP_+fl+ <= 10:
WS_+fl+ = 'Wert1'

Anstelle von +fl+ hätte ich gerne die Variable eingesetzt, damit das Script folgendermassen interpretiert wird:

fl_liste = ['FL1234']

for fl in fl_liste:

if WP_FL1234 >0 and WP_FL1234 <= 10:
WS_FL1234 = 'Wert1'

Ist das möglich?

Danke für Eure Antworten.
bernie70

P.S.: Wie kann ich hier im Forum Einrückungen schreiben?
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Zum PS: Mit dem Button "Python" zwischen "Quote" und "List": http://www.python-forum.de/faq.php#21

Zu deiner eigentlichen Frage: benutze eine Liste statt vieler Namen.
bernie70
User
Beiträge: 7
Registriert: Samstag 1. Mai 2010, 17:20

Hallo derdon,

danke schon mal für die Antworten. Leider werde ich noch nicht ganz schlau daraus.

Wenn das Script fertig ist, beihnaltet meine Liste 10 Werte. Der Wert FL1234 ist nur der erste.

Müsste also mit +FL1234+ der Wert FL1234 in der Folge im Script in meinen neuen Variablen eingesetzt werden?
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

bernie70 hat geschrieben:

Code: Alles auswählen

fl_liste = ['FL1234']

     for fl in fl_liste:

          if WP_+fl+ >0 and WP_+fl+ <= 10:
          WS_+fl+ = 'Wert1'

Code: Alles auswählen

   fl_liste = ['FL1234']

   for fl in fl_liste:

      if WP_FL1234 >0 and WP_FL1234 <= 10:
      WS_FL1234 = 'Wert1'
Lösungsvorschlag:

Code: Alles auswählen

fl = {'FL1234':7, 'FL1235':12}
ws = {'FL1234':False, 'FL1235':False}
for e in fl:
    if fl[e] >0 and fl[e] <= 10:
        ws[e] = 'Wert1'

Code: Alles auswählen

>>> fl
{'FL1234': 7, 'FL1235': 12}
>>> ws
{'FL1234': 'Wert1', 'FL1235': False}
*edit* PS: Wenn der Variablenname ohne Bedeutung ist kannst du auch Listen benutzen
Zuletzt geändert von Sr4l am Samstag 1. Mai 2010, 18:10, insgesamt 1-mal geändert.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Vielleicht suchst du auch Dictionaries:

Code: Alles auswählen

In [21]: d = dict()

In [22]: d['FL1234'] = 'Hello World!'

In [23]: d
Out[23]: {'FL1234': 'Hello World!'}

In [24]: d['FL1234']
Out[24]: 'Hello World!'
Aber, sowohl Listen als auch Dictionaries sind Grundlagen, die du kennen solltest. Das Python Tutorial kann da hilfreich sein.
bernie70
User
Beiträge: 7
Registriert: Samstag 1. Mai 2010, 17:20

Hallo Sr4l,

danke für Deinen Lösungsvorschlag.

Kannst Du mir bitte noch erklären, was im Lösungsvorschlag :7 , :12 und :false bedeuten?

Danke!
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

bernie70 hat geschrieben:Kannst Du mir bitte noch erklären, was im Lösungsvorschlag :7 , :12 und :false bedeuten?
http://docs.python.org/tutorial/datastr ... ctionaries
bernie70
User
Beiträge: 7
Registriert: Samstag 1. Mai 2010, 17:20

Danke für den Link.

ich denke, ich habe mich noch nicht klar ausgedrückt, was ich möchte.

Anhand eines einfachen Beispiels möchte ich versuchen, das noch mal kurz zu erklären:

Als erstes setze ich eine Variable:

x='123'

Dann möchte ich die Variable x in eine neue Variable einsetzen:

y = ab_$x_ba (rauskommen soll ab_123_ba)

In anderen Programmiersprachen wird eine Variable mit $ referenziert. Wie geht das in Python?
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Du meinst String formatierung?
Ansonsten schreib ein Beispiel in einer anderen Programmiersprache ;-)

Code: Alles auswählen

x = 123
y = "ab_%s_ba"%x
bzw:

Code: Alles auswählen

y = "ab_{0}_ba".format(x)
bernie70
User
Beiträge: 7
Registriert: Samstag 1. Mai 2010, 17:20

Danke!!!

Das war das was ich gesucht habe!
Antworten