To make it canonical, you could use `list(ordered(finite_set))`.

On Wednesday, May 18, 2016 at 6:21:34 PM UTC-5, Aaron Meurer wrote:
>
> Also be aware that FiniteSets are unordered so the order of the result 
> from list() may differ between sessions. 
>
> Aaron Meurer 
>
> On Wed, May 18, 2016 at 7:20 PM, Aaron Meurer <[email protected] 
> <javascript:>> wrote: 
> > SymPy set objects are immutable, like every other SymPy object, so pop 
> > could not work. However, iterating over the set does work. For finite 
> > sets, the easiest way is to convert to a list. For countable infinite 
> > sets, converting to a list won't work obviously, but you can use 
> > iter(s) and call next() on it. Iteration is generally implemented so 
> > that it hits every element (for instance, iterating over S.Integers 
> > gives 0, 1, -1, 2, -2, ...). For uncountable sets like intervals, all 
> > you can't iterate, but you can check containment using "in", or 
> > intersect with other sets. 
> > 
> > Aaron Meurer 
> > 
> > On Wed, May 18, 2016 at 5:26 PM, Denis Akhiyarov 
> > <[email protected] <javascript:>> wrote: 
> >> Solveset is not indexable, so try converting to list. What surprised me 
> is 
> >> that it is not like regular python set: 
> >> 
> >> ptipython 
> >> Python 3.5.1 |Anaconda custom (64-bit)| (default, Dec  7 2015, 
> 11:16:01) 
> >> Type "copyright", "credits" or "license" for more information. 
> >> 
> >> 
> >> IPython 4.2.0 -- An enhanced Interactive Python. 
> >> ?         -> Introduction and overview of IPython's features. 
> >> %quickref -> Quick reference. 
> >> help      -> Python's own help system. 
> >> object?   -> Details about 'object', use 'object??' for extra details. 
> >> 
> >> 
> >> In [1]: import sympy 
> >> 
> >> 
> >> In [2]: sympy.__version__ 
> >> Out[2]: '1.0' 
> >> 
> >> 
> >> In [3]: x=sympy.symbols('x',real=True) 
> >>    ...: e,m=sympy.symbols('e,m',positive=True) 
> >>    ...: sympy.solveset(sympy.sqrt(2*e*m-(x*m)**2),x) 
> >> Out[3]: {-sqrt(2)*sqrt(e)/sqrt(m), sqrt(2)*sqrt(e)/sqrt(m)} 
> >> 
> >> 
> >> In [4]: _ 
> >> Out[4]: {-sqrt(2)*sqrt(e)/sqrt(m), sqrt(2)*sqrt(e)/sqrt(m)} 
> >> 
> >> 
> >> In [5]: sols=_ 
> >> 
> >> 
> >> In [6]: type(sols) 
> >> Out[6]: sympy.sets.sets.FiniteSet 
> >> 
> >> 
> >> In [7]: sols.pop() 
> >> 
> --------------------------------------------------------------------------- 
> >> AttributeError                            Traceback (most recent call 
> last) 
> >> <ipython-input-7-188fe3e26bd2> in <module>() 
> >> ----> 1 sols.pop() 
> >> 
> >> 
> >> AttributeError: 'FiniteSet' object has no attribute 'pop' 
> >> 
> >> 
> >> In [8]: list(sols) 
> >> Out[8]: [sqrt(2)*sqrt(e)/sqrt(m), -sqrt(2)*sqrt(e)/sqrt(m)] 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> On Tuesday, May 17, 2016 at 9:24:47 PM UTC-5, chaowen guo wrote: 
> >>> 
> >>> Hi: 
> >>> 
> >>> In sympy1.0, it is recommended to use solveset to solve equation, but 
> how 
> >>> to get the element of the solution? 
> >>> 
> >>> For example: 
> >>> 
> >>> import sympy 
> >>> x=sympy.symbols('x',real=True) 
> >>> e,m=sympy.symbols('e,m',positive=True) 
> >>> sympy.solveset(sympy.sqrt(2*e*m-(x*m)**2),x) 
> >>> 
> >>> I want to get the first and second solution individually to do further 
> >>> calculation, but I can not directly use [0] and [1], so how to get 
> >>> individual element? 
> >> 
> >> -- 
> >> You received this message because you are subscribed to the Google 
> Groups 
> >> "sympy" group. 
> >> To unsubscribe from this group and stop receiving emails from it, send 
> an 
> >> email to [email protected] <javascript:>. 
> >> To post to this group, send email to [email protected] 
> <javascript:>. 
> >> Visit this group at https://groups.google.com/group/sympy. 
> >> To view this discussion on the web visit 
> >> 
> https://groups.google.com/d/msgid/sympy/733f8e55-e2ad-438e-bd2a-792524801685%40googlegroups.com.
>  
>
> >> 
> >> For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/0b265b45-5bf2-45df-89de-bec9b4eaf068%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to