vervielfachen von listindizes

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
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

Freitag 23. März 2007, 19:58

Hallo, hab mal wieder ein kleines problem:

habe zwei einfache listen:

Code: Alles auswählen

erste = [a,b,c,d]
zweite = [2,3,4,5]
jetzt würde ich gerne folgendes tun:
index 0 aus 'erste' um das index-0-fache aus 'zweite' vervielfachen,
index 1 aus 'erste' um das index-1-fache aus 'zweite' vervielfachen,
usw. bis ich folgende liste bekäme:

Code: Alles auswählen

ergebnis = [a,a,b,b,b,c,c,c,c,d,d,d,d,d]
freu mich sehr über eure hilfe,
danke schon mal,
micha
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Freitag 23. März 2007, 20:07

Wie sieht denn dein bisheriger Ansatz aus :D ?
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Freitag 23. März 2007, 20:10

Hi

So kannst du das lösen:

Code: Alles auswählen

l = ['a','b','c']
l2 = [1, 4, 2]
from itertools import izip

res = []
for count, value in izip(l2, l):
    res.extend( count*[value] )
print res
Gruss
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

Freitag 23. März 2007, 20:18

nunja, bin hier ehrlich gesagt am verzweifeln, bin auch noch frischer anfänger und war mit so einem problem noch nicht konfrontiert.(mein python-buch gibt da auch nix her). mit den üblichen list.methods wie insert, extend usw. komme ich irgendwie nicht weiter. obwohl so etwas wie

Code: Alles auswählen

for i in range(len(zweite)):
   erste.insert(erste[i]*zweite[i])


sehr praktisch wäre. Geht nur leider nicht. Aber es muss doch was vergleichbares geben, oder?
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

Freitag 23. März 2007, 20:21

spitze! wieder was gelernt,

cheers und danke
micha :D
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 23. März 2007, 20:21

drewsilson hat geschrieben:sehr praktisch wäre. Geht nur leider nicht. Aber es muss doch was vergleichbares geben, oder?
Ja, ``zip`` und ``izip``, wie rayo bereits demonstriert hat. Ob das eine gute Idee war, dass er dir gleich den kompletten Code gegeben hat ist eine andere Sache. Der lerneffekt ist größer, wenn du selbst drauf gekommen wärest. Naja, egal. Wenn du Fragen zu rayos Code hast, kannst du sie aber immer stellen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten