Variable aus String auslesen

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
TheMerchant
User
Beiträge: 18
Registriert: Montag 10. November 2014, 10:59

Hallo zusammen,

ich würde mir gern den Inhalt einen Variable auslesen anhand von einem String.

Hier mein Beispiel:


Code: Alles auswählen

Test1 = [0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]
Test2 = [0,0,0,0,0,0,0,0,0,0,0,1,0,0,1]
Test3 = [0,0,0,0,0,0,0,0,0,0,0,1,0,1,0]
Test4 = [0,0,0,0,0,0,0,0,0,0,0,1,1,0,0]
Test5 = [0,0,0,0,0,0,0,1,0,0,0,1,0,0,0]
Test6 = [0,0,0,0,0,0,0,0,1,0,0,1,0,0,0]
....
for i in range (0,5):
     neu = "test"+ str(i) # hier soll in neu nicht "test1" sondern der Inhalt der Variable test1 ([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]) stehen 
     ....
Wäre schön wenn einer eine Idee für mich hat.

Danke für die Hilfe im voraus. :D
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@TheMerchant: in Deinem Fall möchtest Du statt durchnummerierter Variablen eine Liste verwenden. Alternativ bietet sich manchmal für ähnliche Probleme ein Wörterbuch an.
TheMerchant
User
Beiträge: 18
Registriert: Montag 10. November 2014, 10:59

@Sirius3:Das mit der Liste ist eine gute Idee. Habe ich mir gerade mal im Netz angeschaut. Könnte so funktionieren. Wird getestet. Danke Dir :-)
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Prinzipiell sieht das dann so aus.

Code: Alles auswählen

test = [
    [0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],
    [0,0,0,0,0,0,0,0,0,0,0,1,0,0,1]
    [0,0,0,0,0,0,0,0,0,0,0,1,0,1,0]
    [0,0,0,0,0,0,0,0,0,0,0,1,1,0,0]
    [0,0,0,0,0,0,0,1,0,0,0,1,0,0,0]
    [0,0,0,0,0,0,0,0,1,0,0,1,0,0,0]
]
Du kannst dann eine Schleife schreiben, die dir jede innere Liste der Reihe nach zur Verfügung stellt.

Code: Alles auswählen

for data in test:
    print(data)
Da eine Liste direkt iterierbar ist brauchst du auch keinen umwegigen Zugriff über den Index.
TheMerchant
User
Beiträge: 18
Registriert: Montag 10. November 2014, 10:59

@/me Danke für die Erläuterungen. Werde ich heute Abend testen. Super :-)
BlackJack

Und um nur die ersten 5 Listen auszugeben wie im ersten Beitrag angedeutet:

Code: Alles auswählen

from itertools import islice

# ...

for data in islice(test, 5):
    print(data)
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

ich glaub er hat sich da vertan, weil es kein Test0 gibt.
empty Sig
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

harryberlin hat geschrieben:ich glaub er hat sich da vertan, weil es kein Test0 gibt.
Wie du an der Diskussion gemerkt haben dürftest ging es um das grundsätzliche Konzept und wir waren durchaus in der Lage das eigentliche Problem zu abstrahieren.
TheMerchant
User
Beiträge: 18
Registriert: Montag 10. November 2014, 10:59

An alle, :-)

Danke für eure Hilfe.
Ich habe es mit der Liste umgesetzt und es funktioniert einwandfrei.
Danke :D
Antworten