X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Fsymbol_sequence.py;h=2a104aed958d877103e1962f1ad212e2ab07c981;hb=1bbade9f41ffbfe366b15d0db657f666bc1f025d;hp=2abf41b786f709afa8581c8509fd4ee6944ae0a4;hpb=9a5d67ab5b0e8bf6515061486ce41042c89b9dac;p=sage.d.git diff --git a/mjo/symbol_sequence.py b/mjo/symbol_sequence.py index 2abf41b..2a104ae 100644 --- a/mjo/symbol_sequence.py +++ b/mjo/symbol_sequence.py @@ -1,7 +1,7 @@ from sage.all import * class SymbolSequence: - """ + r""" An iterable object which acts like a sequence of symbolic expressions (variables). @@ -38,13 +38,13 @@ class SymbolSequence: degree:: sage: a = SymbolSequence('a') - sage: p = sum( a[i]*x^i for i in xrange(5) ) + sage: p = sum( a[i]*x^i for i in range(5) ) sage: p a_4*x^4 + a_3*x^3 + a_2*x^2 + a_1*x + a_0 Using a different latex name since 'lambda' is reserved:: - sage: l = SymbolSequence('l', '\lambda') + sage: l = SymbolSequence('l', r'\lambda') sage: l[0] l_0 sage: latex(l[0]) @@ -57,7 +57,7 @@ class SymbolSequence: a_0_1_2 sage: latex(a[0,1,2]) a_{0}_{1}_{2} - sage: [ a[i,j] for i in xrange(2) for j in xrange(2) ] + sage: [ a[i,j] for i in range(2) for j in range(2) ] [a_0_0, a_0_1, a_1_0, a_1_1] You can pass slices instead of integers to obtain a list of @@ -175,9 +175,10 @@ class SymbolSequence: result = [] for item in l: - if isinstance(item, list): + try: + item = iter(item) result += self._flatten_list_(item) - else: + except TypeError: result += [item] return result @@ -283,7 +284,7 @@ class SymbolSequence: # If the user asks for a slice, we'll be returning a list # of symbols. return [ self._subscript_integer_(idx) - for idx in xrange(start, s.stop, step) ] + for idx in range(start, s.stop, step) ] @@ -332,7 +333,7 @@ class SymbolSequence: for w in v ) # This might be nested... - maybe_nested_list = [ s._subscript_tuple_(args) for s in ss ] + maybe_nested_list = ( s._subscript_tuple_(args) for s in ss ) return self._flatten_list_(maybe_nested_list) else: