Libra writes: > On Wednesday, September 12, 2012 3:02:44 PM UTC+2, Jussi Piitulainen wrote: > > > So you would associate each constraint with an index. You could > > maintain a list of constraints and apply it to the values as > > follows: > > Yes, even though there could be more constraints for each value in > the list (at least 1 constraint for each value)
Either you write more complex constraint functions, or you use more complex data structures to hold them. > > >>> cs = [ lambda x : x >= 1, lambda x : x <= 3, lambda x : x == 2, > > > > ... lambda x : x >= 3 ] > > > > >>> { f(x) for f, x in zip(cs, [1,2,3,4]) } > > Just to understand, with f(x) you are defining a function f with > argument x, right? I didn't know it was possible to define functions > in this way. Is this a case of anonymous function? The value of each lambda expression is a function. f(x) is a function call, evaluated for each pair (f, x) from the list of pairs that the zip returns. { ... for ... in ... } creates a set of the values, no duplicates. [ ... for ... in ... ] creates a list of the values. > > {False, True} > > Actually, I don't understand the output. Why it is both False and > True? It's a set containing False and True. The False comes from the f(x) where f = lambda x : x == 2, and x is 3. There is only one True because I requested a set of the values. -- http://mail.python.org/mailman/listinfo/python-list