On Sun, 23 Jan 2011 22:34:33 +0100, Christian Heimes wrote: > It's easier and faster if you convert the lists to sets first: > > your_set = set(your_list) > > if your_set.issuperset(set([A, B])) and your_set.isdisjoint(set([C, > D])): > ...
"Easier" is a close thing. I find this easier to remember and write than set processing, even if it is a couple of characters longer: if all(x in your_list for x in (A, B)) and not any(x in your_list for x in (C, D)): ... And as for "faster", surely that will depend on the number of elements in your_list? The conversion from list to set doesn't happen for free, and it's likely that for small enough lists, that time may exceed any time savings you would otherwise gain. -- Steven -- http://mail.python.org/mailman/listinfo/python-list