Python -> alle einzelnen Werte einer Liste /Tuple vergleichen?
Hat mir jemand einen Tipp wie ich folgendes kompakt löse?
Ich möchte also prüfen ob der Betrag von Liste1[0] - Liste2[0] größer 0,2 ist und das für jeden Listeneintrag jeweils. Also etwa: abs(Liste1[1] - Liste2[1]) > 0,2
Gibt es da eine kompaktere Lösung als alle Werte mit einer For-Schleife durch zu ackern?
Wenn eine Zeile davon eine Differenz größer als 0,2 ist will ich etwas ausführen...
3 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, Python
>>> [x for x in zip(l1,l2)]
[(51, 61), (41, 14), (68, 64), (45, 59), (60, 27), (44, 16), (63, 29), (50, 27), (63, 24), (63, 0)]
>>> [ (x,y) for x,y in zip(l1,l2) if abs(x)-abs(y)>5]
[(41, 14), (60, 27), (44, 16), (63, 29), (50, 27), (63, 24), (63, 0)]
So würde Dir eien Liste von Tupeln generiert, bei denen die angegebene Bedingung erfüllt wird. Kommt jetzt natürlich drauf an, was sonst noch so passieren soll.
Ja so zum Beispiel:
a = [0.5]*10
b = [x/10 for x in range(10)]
print("a",a)
print("b",b)
print("zip:", list(zip(a,b)))
ab = map(lambda x: abs(x[0]-x[1]), zip(a,b))
print(list(ab))
ab = map(lambda x: abs(x[0]-x[1])>0.2, zip(a,b))
print(list(ab))
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Python
Ich wüsste nicht wie du das kompakter bekommen könntest.
Woher ich das weiß:Studium / Ausbildung – Informatikstudent