Seite 1 von 1
vergleiche listen
Verfasst: Freitag 21. März 2008, 09:55
von monjiji
Hallo zusammen,
bin Python-Anfänger und habe ein Problem.
Ich lese aus einem Input-File Daten ein und bilde aus
ihnen Listen der Form:
seq1=[[],[],...], [1,2.0,1.0,3.0]-Einträge
seq2=[[],[],...], [2.0,1.0,3.0].Einträge
ich möchte diese Listen vergleichen und
zwar in der Form, dass die floats gleich sind
und ich eine neue Liste mit den an erster
Stelle stehenden ints aus den Listen von seq1
bekomme.
Vielen Dank für die Beiträge
monjiji
Verfasst: Freitag 21. März 2008, 10:25
von BlackJack
Die Beschreibung ist verwirrend. Kannst Du mal ganz konkrete Beispiele geben und/oder das Problem als Problem beschreiben und nicht als Lösung?
Verfasst: Freitag 21. März 2008, 10:44
von monjiji
ok, also mein Prblem besteht darin, dass ich nicht weiß wie ich zwei
Einträge in zwei verschiedenen Listen vergleichen und dann einen anderen Eintrag aus der ersten Liste zurückgeben kann.
Ungefähr so
s = [1,1.0,2.0,3.0] Liste1
t = [1.0,2.0,3.0] Liste2
Wie kann ich jetzt 1.0 mit 1.0, 2.0 mit 2.0 und 3.0 mit 3.0 vergleichen und wenn das wahr ist mir 1 ausgeben lassen?
Hoffe es ist jetzt klarer!
Verfasst: Freitag 21. März 2008, 12:13
von HWK
Ungetestet:
Code: Alles auswählen
[item1[0] for item1, item2 in zip(seq1, seq2) if item1[1:] == item2]
MfG
HWK
Verfasst: Freitag 21. März 2008, 14:15
von Ene Uran
Das kan man mit set() tun:
Code: Alles auswählen
seq1 = [0.1, 3.0, 2.0, 1.0]
seq2 = [1.0, 2.0, 3.0, 0.4]
set1 = set(seq1)
set2 = set(seq2)
print list(set1 & set2) # [1.0, 2.0, 3.0]
Verfasst: Freitag 21. März 2008, 15:41
von HWK
Ene Uran hat geschrieben:Das kan man mit set() tun:
Code: Alles auswählen
seq1 = [0.1, 3.0, 2.0, 1.0]
seq2 = [1.0, 2.0, 3.0, 0.4]
set1 = set(seq1)
set2 = set(seq2)
print list(set1 & set2) # [1.0, 2.0, 3.0]
Eher nicht:
1. Die Reihenfolge scheint ja eine Rolle zu spielen.
2. Elemente könnten ja mehrfach auftreten.
3. Das 1. Element von Sequenz 1 soll ja das Ergebnis sein und somit nicht mit den anderen Elementen verglichen werden.
4. Wo ist die gewünschte Ergebnisliste?
MfG
HWK