Seite 1 von 1

automatische Variablenbezeichnung in for Schleifen

Verfasst: Mittwoch 14. April 2010, 18:28
von Horst
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.

Verfasst: Mittwoch 14. April 2010, 18:33
von Darii
Immer noch keine Code-Tags…

Verfasst: Mittwoch 14. April 2010, 18:44
von Horst
Was meinst du mit Cade-tags? Davon hab ich noch nichts gehört

Verfasst: Mittwoch 14. April 2010, 19:17
von 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.

Verfasst: Mittwoch 14. April 2010, 19:48
von Horst
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

Verfasst: Mittwoch 14. April 2010, 20:02
von EyDu
Indem du die Listen fi in eine Liste g packst.

Verfasst: Mittwoch 14. April 2010, 21:13
von 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.

Verfasst: Mittwoch 14. April 2010, 21:37
von Horst
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

Verfasst: Mittwoch 14. April 2010, 21:46
von 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.

Verfasst: Mittwoch 14. April 2010, 21:50
von gkuhl
und Code-Tags benutzen :wink:

Verfasst: Mittwoch 14. April 2010, 21:53
von Leonidas
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.