If you want to be fancy you can use a double generator expression. This seems to be valid syntax in 2.5.2
>>> sets = set((1, 2, 3)), set((3, 4, 5)), set((5, 6, 7)) >>> set(item for set in sets for item in set) set([1, 2, 3, 4, 5, 6, 7]) On Sun, May 27, 2012 at 4:40 PM, [email protected] < [email protected]> wrote: > OK, I will add it to compatibility. > > On 27 May 2012 23:35, Aaron Meurer <[email protected]> wrote: > > On May 27, 2012, at 2:59 PM, "Vladimir Perić" <[email protected]> > wrote: > > > >> On Sun, May 27, 2012 at 10:30 PM, [email protected] > >> <[email protected]> wrote: > >>> In python2.5 set.union requires exactly two arguments. In other > >>> versions it requires any positive number of arguments. Are you aware > >>> of idiomatic way to do this in python2.5 > >>> > >>> set.union(set1, set2, set3) > >>> > >>> If not I will probably end up using reduce. > >> > >> You could also introduce the appropriate code to > >> sympy.core.compatibility if it makes it much easier for you, but I > >> guess using reduce() in this case is completely ok. > > > > Another advantage of doing it this way is that you can make the helper > > function use set.union in Python 2.6+, which is probably more > > efficient. It also lets us get an idea of what Python features we're > > missing just by looking at what's been defined in the compatibility > > file. > > > > Actually, if I think about it, a more efficient way would probably be > > to create a new set and to iteratively add the elements of the other > > sets. This is better because it uses the mutability of set(), whereas > > reduce with set.union would create a new set at each pass. So > > something like > > > > def set_union: > > ret = set() > > for s in sets: > > ret |= s > > return ret > > > > might be more efficient than reduce(set.union, sets, set()). You'll > > have to time it to double check, though. > > > > You might also think about if you can just use the mutability in your > > application. > > > > Aaron Meurer > > > >> > >>> > >>> -- > >>> You received this message because you are subscribed to the Google > Groups "sympy" group. > >>> To post to this group, send email to [email protected]. > >>> To unsubscribe from this group, send email to > [email protected]. > >>> For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > >>> > >> > >> > >> > >> -- > >> Vladimir Perić > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups "sympy" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > [email protected]. > >> For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > >> > > > > -- > > You received this message because you are subscribed to the Google > Groups "sympy" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]. > > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
