Elemente aus Liste auslesen und weiterverwenden

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.
mep
User
Beiträge: 17
Registriert: Montag 15. Mai 2006, 15:58

Elemente aus Liste auslesen und weiterverwenden

Beitragvon mep » Dienstag 13. Juni 2006, 11:18

Hallo, ich habe folgendes Problem:
ich habe eine Liste erzeugt mit einer unbekannten Anzahl an Zahlen x. Die Zahlen möchte ich z.B. in einer for Schleife weiterverwenden und für jedes Element eine eindeutige Variable vergeben. Wichtig ist auch, dass ich die genaue Anzahl der erzeugten Variablen kenne, um alle Variablen aufrufen zu können.
Hier in etwa der Code:

Code: Alles auswählen

mylist = []
for i in range(0,x):
   if i % 2:
      mylist.append(i)
l = len(mylist)
for j in range(0, l):
   FEHLENDER CODE!!!!
   #hier soll jetzt in etwa sowas rauskommen:
   var0 = 1        #bei j = 0 wird das erste Element aus der Liste angesprochen   
   var1 = 3        #bei j = 1 wird das zweite Element aus der Liste angesprochen
   var2 = 5        #usw...
   

ich habe mir gedacht, dass man die einzelnen Variablen etwa so erzeugen kann:

Code: Alles auswählen

var%s = ... % (j)

Oder gibts da irgend einen anderen Befehl?
Ebenso ist es mir ein Rätsel, wie ich Elemente aus einer Liste der Reihe nach auslesen kann. Wenn ich list(mylist) verwende kann ich ja keine weiteren Argumente in Klammern verwenden.
Wäre super, wenn mir jemand weiterhelfen könnte. Vielen Dank schon im Voraus!

Gruß, mep
Benutzeravatar
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Beitragvon Gromit » Dienstag 13. Juni 2006, 11:43

Ich will die ja nicht zu nahe treten, aber mir scheint das ziemlicher Unfug zu sein, insbesondere ist Python kein REXX.

Code: Alles auswählen

mlist[ 0 ]

macht geanu das was Du mit
[code=]
var0
[/code]
ereichen willst

Dies weist einem Listenelement einen Wert zu:

Code: Alles auswählen

mlist[ 0 ] = "ein wert"


und wenn man C mag kann man auch C-Programme schreiben:

Code: Alles auswählen

for index in range( len( mylist ) ):
  print mylist[ index ]

Allerdings macht das kaum einer, so ist es mehr "pythonic":

Code: Alles auswählen

for element in mylist:
  print element


Dann kann man:

Code: Alles auswählen

for i in range(0,x):
   if i % 2:
      mylist.append(i)

einfach durch:

Code: Alles auswählen

mylist = range( 0, x , 2 )

erreichen.

Schließlich kann man natürlich auch REXX-Programme schreiben:

Code: Alles auswählen

for index in range( 10 ):
  globals()[ "var%d" % index ] = index


Damit hast Du dann Variablen mit den Namen var0 bis var9, aber das ist "unpythonic" bis zum geht nicht mehr ...

HTH,
Gerald
mep
User
Beiträge: 17
Registriert: Montag 15. Mai 2006, 15:58

Beitragvon mep » Dienstag 13. Juni 2006, 12:05

Hallo Gromit,

erst mal vielen Dank für deine Erklärungen. Vor allem Tip 2 und der letzte Tip bringen mich weiter.
Ich weiß, dass ich höchstwahrscheinlich "unpythonic" schreibe, aber ich bin in Sachen Programmierung noch ein ziemlicher Anfänger und in Python um so mehr. Ich werde versuchen deine Tips umzusetzen. Wahrscheinlich ist es wirklich unnötig eigene Variablen zu erzeugen. Was ist eigentlich REXX? Hab noch nie davon gehört.

Gruß, mep
BlackJack

Beitragvon BlackJack » Dienstag 13. Juni 2006, 20:02

Rexx ist eine Programmiersprache.
Benutzeravatar
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

REXX-Stem-Variablen

Beitragvon Gromit » Mittwoch 14. Juni 2006, 15:26

mep hat geschrieben:Was ist eigentlich REXX? Hab noch nie davon gehört.

Wie BlackJack schon erklärt hat; es ist eine Programmiersprache.

Leider hat REXX keine Arrays oder Listen, man muß sie mit Hilfe von Stem-Variablen simulieren.
Diese Stem-Variablen sind dem, was Du wolltest sehr ähnlich, deshalb hatte ich vermutet, daß Du REXX kennst.

Vielleicht hilf Dir ja das Non-Programmers Tutorial For Python weiter.
Das beste Quick-Ref-Sheet, das ich gefunden habe, ist das von Richard Gruet.

Hope That Helps,
Gerald
Benutzeravatar
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Noch Quick-Ref-Sheet

Beitragvon Gromit » Mittwoch 14. Juni 2006, 15:45


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]