AW: AW: [Python-de] Newbie-Frage: Sequenzen vergleichen

Georg Mischler schorsch at schorsch.com
Wed Sep 18 12:37:12 EDT 2002


Thomas Fritz wrote:

> Aus zwei SQL-Abfragen erhalte ich zwei Ergebnismengen, die ich vergleichen
> will, und zwar will ich alle aus A haben, die nicht in B sind.
> So habe ich es probiert:
> [k for k in A if k not in B]
> Das liefert immer nur ein Ergebnis, das auch noch falsch ist (in beiden
> Mengen vorhanden).

Python 2.2.1 (#4, Aug 24 2002, 18:49:10)
[GCC 2.95.3 20010315 (SuSE)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> A = [1,2,3,4,5]
>>> B = [3,4,5,6,7]
>>> [k for k in A if k not in B]
[1, 2]
>>>

Das ist doch eigentlich genau das gewuenschte Ergebnis.
Vielleicht ist der Inhalt von A und B ja nicht ganz genau
das, wass du erwartest?


> Und so:
> res = []
> for x in A:
> 	#if x in B:
    if x not in B:
> 		res.append(x)
> Das liefert viel zu viele Ergebnisse, die alle falsch sind (in beiden Mengen
> vorhanden).

Das Resultat ist richtig, gemessen an deinem Code.
Wenn du nur die Elemente haben willst, die NICHT in B enhtalten
sind, dann solltest du das dem Program vielleicht auch so sagen... ;)


-schorsch

-- 
Georg Mischler  --  simulations developer  --  schorsch at schorsch.com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/





More information about the Python-de mailing list