Listen zusammenführen

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
lucius
User
Beiträge: 2
Registriert: Mittwoch 22. Februar 2006, 16:35

Hallo,

ich bin rel. neu in Python und habe schon mein erstes Problem.
Ich möchte gerne mehrere gleichlange Listen zusammenfassen in einer großen. Dabei soll "Zeile 1" von "Liste 1" mit den jeweils ersten Zeilen der anderen Listen die "Zeile 1" der neuen "großen Liste bilden. Wie mache ich dass ....
Mein bisheriger Ansatz sah so aus:

Code: Alles auswählen

for i in Liste1:
        bigliste.insert(len(bigliste2),[Liste1[b],Liste2[b],Liste3[b],Liste4[b]])
        b=b+1
Das Problem ist aber, dass Python jeweils Listen 2-4 komplett pro Zeile in bigliste einfügt.
Liste 1 hat mehrere "Spalten", Listen 2 - 4 sind "einspaltig".

Vielen Dank im Voraus

Lucius
helmut
User
Beiträge: 57
Registriert: Mittwoch 2. November 2005, 07:45
Wohnort: Dormagen

Hallo Lucius,

hier kommt ein (nicht optimierter) Loesungvorschlag:

Code: Alles auswählen

liste_1=[[2,4],[1,3]]
liste_2=['a','b']
liste_3=['x','y']
liste_4=['A','B']
biglist=[]

for i in range(0,len(liste_1)):
   biglist.append([liste_1[i][0],liste_2[i],liste_3[i],liste_4[i]])

print biglist        # =>  [[2, 'a', 'x', 'A'], [1, 'b', 'y', 'B']]
:roll: Ein etwas laengerer Blick in die Python-Dokumentation bezüglich Schleifenbildung und Listen koennte nicht schaden. :wink:

Gruss, Helmut
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Hat Python schon eingebaut:

Code: Alles auswählen

>>> a=[[1,2],[3,4]]
>>> b=[5,6]
>>> c=[7,8]
>>> zip(a,b,c)
[([1, 2], 5, 7), ([3, 4], 6, 8)]
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

es geht auch so:

Code: Alles auswählen

a=[1,2,3]
b=[4,5,6]
c=a+b
print c
mfg

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

Code: Alles auswählen

In [1]: a = [1,2,3]
In [2]: b = [4,5,6]
In [3]: a+b
Out[3]: [1, 2, 3, 4, 5, 6]
@Python Master 47: Ich hab das Gefühl, dass das nicht das gewünschte Ergebnis ist ;)
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Joa, mein Ergebniss bringt nicht das, was er will!Hab es mir nicht richtig durchgelesen! :oops:
mfg

Thomas :-)
lucius
User
Beiträge: 2
Registriert: Mittwoch 22. Februar 2006, 16:35

Hallo,

ich möchte mich gerne bei euch allen für eure schnelle Hilfe bedanken.
Es hat mir für mein Programm sehr geholfen.
Recht herzlichen Dank. Ihr seid die Wucht.

Lucius

PS: Als kleines Dankeschön. Wer einen Gmail-Account will kann sich gerne an mich wenden.
PPS: Wie kann ich bei diesem Forum mithelfen, dabei bleiben tue ich auf jeden Fall.
PPPS: Danke nochmals.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lucius hat geschrieben:Wie kann ich bei diesem Forum mithelfen, dabei bleiben tue ich auf jeden Fall.
Hi lucius, willkommen hier im Python-Forum!

Helfen - das ist ganz einfach. Wenn du eine Frage von jemandem liest, diese beantworten oder zumindest einen Hinweis geben kannst und die Zeit dazu hast --> tu es. :wink:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten