Seite 1 von 1
Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 14:19
von gerald123
Hey,
ich habe Probleme bei folgendem Code:
Code: Alles auswählen
kWert = np.arange(1,5)
iWert = np.arange(0,2,0.5)
for i, kWert in enumerate(kWert):
for ii, iWert in enumerate(iWert):
print(kWert, iWert)
Fehler:
TypeError: 'numpy.float64' object is not iterable
Vielen Dank und beste Grüße
Re: Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 14:33
von sparrow
Es ist unglücklich den Namen des zu iterierenden Objektes in der Schleife zu überschreiben.
Re: Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 14:38
von nezzcarth
Wie Sparrow schon schrieb, liegt es an den Variablennamen. Ich würde sogar sagen, dass die insgesamt etwas unglücklich sind.
So ist es vielleicht schon etwas besser, aber falls möglich, würde ich versuchen, für die Werte inhaltsbezogene Namen zu wählen:
Code: Alles auswählen
values_1 = np.arange(1,5)
values_2 = np.arange(0,2,0.5)
for i, value_1 in enumerate(values_1):
for j, value_2 in enumerate(values_2):
print(value_1, value_2)
Re: Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 14:56
von gerald123

viele Dank!!!
Re: Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 16:55
von bwbg
Alternativ:
Code: Alles auswählen
xs = [1, 2, 3, 4]
ys = [0.5, 1.0, 1.5, 2.0]
#for a, b in itertools.product(xs, ys):
# print(a, b)
for x, y in itertools.product(xs, ys):
print(x, y)
Edit: Siehe Anmerkung Folgebeitrag
Re: Verschachtelte for-Schleife
Verfasst: Montag 21. September 2015, 17:06
von nezzcarth
@bwbg: Würde man bei der Verwendung von xs/ys für die einzelnen Werte der Konsistenz halber statt a und b nicht eher x und y wählen? So hatte ich diese Nomenklatur bisher verstanden.