Am 15.05.2011 17:56 schrieb TheSaint:
SigmundV wrote:

I think the OP wants to find the intersection of two lists.
list(set(list1)&  set(list2)) is indeed one way to achieve this. [i
for i in list1 if i in list2] is another one

Exactly. I was confused on that I wasn't able to have a list in return.
The set intersection is the smartest result better than a "for" loop or a
comprehension list.

I'm not sure about if it is really the smartest way.

s=set(list2);  [i for i in list1 if i in s]
is in the same order of magnitude as the set operation. Both solutions seem to be equivalent in that concerns the number of needed loop runs, but this two-step operation might require one less loop over list1.

The set&set solution, in contrary, might require one loop while transforming to a set and another one for the & operation.


Infact the operatin loops are compiled into python, therfore they are the
fastest.

Which loops do you mean here?


Thomas
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to