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

Multiplikation von Listenelementen

Beitragvon keboo » 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])

Beitragvon mawe » 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

danke

Beitragvon keboo » Mittwoch 22. Februar 2006, 17:05

hi mawe!

Danke für deine rasche antwort :D

johannes
BlackJack

Beitragvon 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:

Beitragvon modelnine » 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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]