automatische Variablenbezeichnung in for Schleifen

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
Horst
User
Beiträge: 37
Registriert: Mittwoch 14. April 2010, 17:55

Hallo,
Ich habe noch eine Frage. Hoffentlich kann mir jemand Helfen.
Ich Möchste in einer forschleife mehrere Listen erstellen. wie kann man den Listennamen in Abhängigkeit von der laufenden Vriablen i bringen. Das ganze sinht ungefähr so aus:

Code: Alles auswählen

a = int (input('Eingabe Anzahl der Werte: '))
b = int (input('Eingabe Anzahl der Listen: '))

for i in range (b):
    f = []                                                              
    for j in range(a): 
        print ('Gebe den ',j,'ten Wert der ',i,'ten Liste ein.')
        f.insert(i,int (input('Eingabe: ')))
        j = j + 1
    i = i + 1
Ich hoffe Ihr kennt mein Problem und könnt mir Helfen.
Danke schon mal im Voraus.

Edit (BlackJack): Quelltext in Code-Tags gesetzt.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Immer noch keine Code-Tags…
Horst
User
Beiträge: 37
Registriert: Mittwoch 14. April 2010, 17:55

Was meinst du mit Cade-tags? Davon hab ich noch nichts gehört
BlackJack

@Horst: Ich habe die Code-Tags mal für Dich im ersten Beitrag gesetzt.

Warum erhöhst Du `i` und `j` am Ende der Schleifen? Das ist komplett sinnlos weil gleich am Anfang des nächsten Schleifendurchlaufs die Namen durch die ``for``-Schleife sowieso an einen neuen Wert gebunden werden.

`f` wird in jedem Durchlauf der äusseren Schleife neu gebunden und damit geht die Liste aus dem vorherigen Durchlauf verloren.

Du möchtest hier warscheinlich eine Liste von Listen mit Werten. Also an zwei Stellen mit `append()` arbeiten. vor den Schleifen die leere Ergebnisliste erstellen. In der äusseren Schleife am Anfang eine leere Liste erstellen, da in der inneren Schleife die Werte anhängen und am Ende der äusseren Schleife diese Liste an die Ergebnisliste anhängen.
Horst
User
Beiträge: 37
Registriert: Mittwoch 14. April 2010, 17:55

Ich möchte i listen mit jeweils j elementen erzeugen die randwerte a und b sollen vorher eingegeben werden.
Ich würde gerne den Listen f eine Abhängigkeit von i geben.
Kann man vielleicht dem Listennahmen f einen Index geben, der bewirkt, dass es jedes mal eine neues f i gibt, ohne dass die bisherige Liste verloren geht??????
Ich hoffe, ihr versteht, wie ich das meine
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Indem du die Listen fi in eine Liste g packst.
Das Leben ist wie ein Tennisball.
BlackJack

@Horst: Lies Dir nochmal den letzten Absatz meines letzten Beitrags durch. Das musst Du nur in Code umsetzen. Du willst eine Liste mit Listen haben.
Horst
User
Beiträge: 37
Registriert: Mittwoch 14. April 2010, 17:55

Perfekt jetzt klappts!
So muss es aussehen:

e = []
for i in range (int(b)):
f = []
for j in range(int(a)):
print ((j+1),'ter Wert in Spalte',(i+1))
g = input('Eingabe: ')
f.insert(j,g)
j = j + 1
e.insert(i,f)
i = i + 1

Danke für die Hilfe :D
BlackJack

@Horst: Du hast immer noch die überflüssigen erhöhungen von `i` und `j` am Ende der Schleifen und statt `insert()` solltest Du `append()` verwenden. Das habe ich aber beides schon einmal geschrieben.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

und Code-Tags benutzen :wink:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gkuhl hat geschrieben:und Code-Tags benutzen :wink:
Ist auch der Grund warum ich keine Posts mehr editiere um Tags hinzuzufügen - weil die Poster es sonst nie lernen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten