2 Listenvergleichen

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

2 Listenvergleichen

Beitragvon mitch » Dienstag 24. April 2007, 13:42

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: 2 Listenvergleichen

Beitragvon gerold » Dienstag 24. April 2007, 13:49

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:

Beitragvon mitch » Dienstag 24. April 2007, 14:14

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder