ted b wrote:
> Is there a way i can select all elements from a list
> that do not meet selection criteria. I want to be able
> to select elements that have values of, say, < 1 but
> only if at least one of the elements has a value of >
> 0.
> 
> What i mean is, for example, in the code below, if one
> of the elements of "list 'a'" has a value greater than
> 1, then i want to print all the other elements in the
> list (i.e., class One and class Three) and to do
> otherStuff associated with those classes. Right now,
> it prints those elements that *do* have values of > 0,
> (i.e. class Two). But in situations where all of the
> classes have values set to 0, then i don't want
> anything selected. 
> 
> I don't want to just use something like "if x.value()
> != 0" or "if x.value() < 1" since those would give
> results if all elements were less than 1, and i only
> want to select elements of the list that are less than
> 1 if at least one of the elements is > 1.
> 
> Here's the sample code:
> 
> class One:
>    def value(self):
>       return 0
>       
> class Two:
>    def value(self):
>       return 1
> 
> class Three:
>    def value(self):
>       return 0
> 
> a = [One(), Two(), Three()]
> 
> for x in a:
>    if x.value() > 0:
>       print x
>       x.otherStuff()
> 
> Thanks in advance!!! :)))
> 



>>> doit = [1,2,0,-1,-3,-5,-7]
>>> dont = [0,-1,-3,-5,-7,-9,-11]
>>> [i for i in dont if max(dont) > 0 and i < 1]
[]
>>> [i for i in doit if max(doit) > 0 and i < 1]
[0, -1, -3, -5, -7]


HTH





_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to