Zwei Listen vereinen

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
Axelfoly
User
Beiträge: 2
Registriert: Freitag 25. Mai 2012, 13:11

Hey Leute,

ich versuche gerade zwei Spektren zu vereinen. Also Wellenlänge + Intensität:

Wellenlänge1 Wellenlänge2 Energie Intensität
348.421544715326 348.628650102 3.55633954822 1398
348.432541253551 348.639649389 3.55622734871 1388
...

so steht das jeweils in ner Datei, die ich einlesen kann. Soweit alles ok. Nur ich möchte die Dateien vereinen und nach der Wellenlänge sortieren, deshalb die Liste. Leider stoße ich dabei auf das Problem, dass ich nicht weiß, wie ich zwei Listen GESCHEIT vereine:

statt:
aus Datei 1
[[['398.584', '398.803646', '3.10890301138', '23777.000'],
['398.573', '398.79264325', '3.10898878649', '23396.000'], ... ],
aus Datei 2
[['451.438', '451.6708595', '2.74501183754', '6282.000'],
['451.427', '451.65985675', '2.74507870795', '6558.000'], ... ]]
...

möchte ich gerne alles so haben:
[['398.584', '398.803646', '3.10890301138', '23777.000'],
['398.573', '398.79264325', '3.10898878649', '23396.000'], ... ,
['451.438', '451.6708595', '2.74501183754', '6282.000'],
['451.427', '451.65985675', '2.74507870795', '6558.000'], ... ]

VEREINFACHTER Code dazu. Stehen noch ne Reihe Bedingungen überall rum, aber interessiert ja erstmal niemand:

for file in os.listdir(os.curdir):
for line in open(file):
if line.count('.') >= 1:
data.append(line.strip().split())

So lese ich meine Daten ein. Mache noch nicht so lange in Python und google mir vieles zusammen.
Also die vereinigte und sortierte Liste soll dann wieder in Tabellenformat gespeichert werden. Hatte schon mal mit Pickle versucht, aber das macht irwie ganz komische Sachen in die neue Datei.

die sortieren Zeile sieht so aus. Das funktioniert glaub ich:

sorted(data, key=lambda data: data[1])

Suche im Prinzip einen Befehl wie append, eben nur für Listen. Gibts sowas? Ich bin am verzweifeln. Sitze schon viel zu lange dran. Da wär ich bald mit Excel schneller gewesen. Ein goldener Tipp wäre super.

Viele Grüße
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Axelfoly hat geschrieben:Suche im Prinzip einen Befehl wie append, eben nur für Listen. Gibts sowas?

Code: Alles auswählen

>>> data1 = ['a', 'b', 'c']
>>> data2 = [1, 2, 3]
>>> print data1 + data2
['a', 'b', 'c', 1, 2, 3]
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

und in-place funktioniert es mit der extend-Methode von Listen:

Code: Alles auswählen

>>> data1 = ['a', 'b', 'c']
>>> data2 = [1, 2, 3]
>>> data1.extend(data2)
>>> print data1
['a', 'b', 'c', 1, 2, 3]
Axelfoly
User
Beiträge: 2
Registriert: Freitag 25. Mai 2012, 13:11

Wunderschön! Danke Leute :-)
Antworten