Code Monkey home page Code Monkey logo

Comments (4)

geographika avatar geographika commented on June 5, 2024 2

Thanks for the further explanation.

For anyone who comes across this issue and needs to chain a union using P.empty() as follows allows a chained operation:

from functools import reduce
m = [P.closed(0, 10), P.closed(2, 8), P.closed(1, 4)]
reduce(P.Interval.union, m, P.empty())
>>> [0,10]

from portion.

AlexandreDecan avatar AlexandreDecan commented on June 5, 2024

Hello,

I'm not 100% sure I understood the question, but if I'm right, what you're looking for is reduce from the functools module (see https://docs.python.org/3/library/functools.html#functools.reduce). The function will be P.Interval.intersection, the iterable will be the list of intervals, and the initializer will be the infinite interval (i.e. P.open(-P.inf, P.inf)).

For example:

>>> import portion as P
>>> m = [P.closed(0, 10), P.closed(2, 8), P.closed(1, 4)]
>>> from functools import reduce
>>> reduce(P.Interval.intersection, m, P.open(-P.inf, P.inf))
[2, 4]

Is it what you were looking for?

from portion.

geographika avatar geographika commented on June 5, 2024

@AlexandreDecan - yes exactly that. I was didn't realise P.Interval.intersection was a class method and hadn't thought of using P.open(-P.inf, P.inf) as the starting point.
Thanks!

from portion.

AlexandreDecan avatar AlexandreDecan commented on June 5, 2024

You're welcome ;-)

Note that P.Interval.intersection is not a class method but, thanks to Python, if a is an instance of class A, then a.f() is (nearly) equivalent to A.f(a), so we can use instance methods as class methods :-)

from portion.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.