2 Listenvergleichen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

eine etwas simple Frage aber wie kann ich schnellst möglich 2 Listen in einem python script vergleichen?

Bsp.: Liste1=['hund','katze','maus']
Liste2=['hund','maus','igel']

so jetzt will ich in der dritten Liste das stehen haben...Liste3['hund','maus']...weil die beiden werte in der ersten sowie in der zweiten liste vorkommen...

Kann mir einer sagen wie ich das am elegantesten löse?

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:Liste3['hund','maus']
Hi mitch!

Code: Alles auswählen

>>> l1 = ['hund','katze','maus']
>>> l2 = ['hund','maus','igel']
>>> [ item for item in l1 if item in l2 ]
['hund', 'maus']
>>> 
Wahrscheinlich schneller, aber erst ab Python 2.4:

Code: Alles auswählen

>>> s1 = set(l1)
>>> s2 = set(l2)
>>> s1.intersection(s2)
set(['maus', 'hund'])
>>> 
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

hm das Problem ist aber, dass es im Plone irgendwie nicht so einfach ist.
Da habe ich 2 Listen mit nummern stehen z.B. ret_list1=[22,44,45,46] und eine ret_list2=[22,33,45,47] und in ret_list3 soll das stehen ret_list3=[22,45].
Bisher habe ich das immer mit schleifen gemacht, also alle listen elemente immer miteinander verglichen und daher ist mein Quelltext verständlicherweise sehr lang geworden. Jetzt suche ich einen weg den Quelltext übersichtlicher zu gestalten und zu verkürzen.

Mein Python Script ist nur ein zwischen Formular zur Auswertung von den Listen, danach sollen die Listenwerte an das nächste Template weitergegeben werden.

mfg
Antworten