Ian Kelly wrote:
> On Sun, Jan 23, 2011 at 2:34 PM, Christian Heimes <[email protected]>
> wrote:
>> your_set = set(your_list)
>>
>> if your_set.issuperset(set([A, B])) and your_set.isdisjoint(set([C, D])):
>
> if your_set.intersection([A, B, C, D]) == set([A, B]):
> ...
You can avoid converting your_list to a set with (using 2.7/3.x notation)
if {A, B, C, D}.intersection(your_list) == {A, B}:
...
The items in your_list still have to be hashable, so the approach is not as
general as
if (all(required in your_list for required in (A, B)) and
not any(forbidden in your_list for forbidden in (C, D))):
...
or similar.
Also, it's not as easy to understand, so don't forget the explaining comment
if you use the set-based approach.
Peter
--
http://mail.python.org/mailman/listinfo/python-list