Multiplikation von Listenelementen

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
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Mittwoch 22. Februar 2006, 16:53

Hallo Leute!

Bin ein blutiger Anfänger und man riet mir mit Python anzufangen.

Ich möchte Elemente von 2 Listen nacheinander miteinader multiplizieren.

Wo ist der Fehler in meinem Code?

Code: Alles auswählen

X=[1,2,3,4,5]
Y=[4,5,6,7,8]

for i in len(X):
	print X[i]*Y[i],
Danke für eure Hilfe,

Johannes
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Mittwoch 22. Februar 2006, 17:03

Hi!

len(X) liefert eine Zahl, und über die kann man nicht iterieren ;)
So gehts:

Code: Alles auswählen

for i in range(len(X)):
    print X[i]*Y[i]
Gruß, mawe
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Mittwoch 22. Februar 2006, 17:05

hi mawe!

Danke für deine rasche antwort :D

johannes
BlackJack

Donnerstag 23. Februar 2006, 00:06

Da man `i` hier nicht wirklich benötigt, ist folgendes "pythonischer":

Code: Alles auswählen

X = [1,2,3,4,5]
Y = [4,5,6,7,8]

for x, y in zip(X, Y):
    print x * y
Falls `X` und `Y` sehr grosse Listen sein sollten dann kann man auch `itertools.izip()` statt `zip()` verwenden.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Donnerstag 23. Februar 2006, 01:27

Oder speicherplatz- und laufzeitsparender bei großen Listen (len(l) > 1000, so für mich immer als Richtwert):

Code: Alles auswählen

import itertools

X = [1,2,3,4,5]
Y = [4,5,6,7,8]

for x, y in itertools.izip(X, Y):
    print x * y
--- Heiko.
Antworten