EXAMPLES::
+ sage: _all2list([[1]])
+ [1]
+
+ ::
+
sage: V1 = VectorSpace(QQ,2)
sage: V2 = MatrixSpace(QQ,2)
sage: x1 = V1([1,1])
sage: _all2list(OctonionMatrixAlgebra(1).one())
[1, 0, 0, 0, 0, 0, 0, 0]
+ ::
+
+ sage: V1 = VectorSpace(QQ,2)
+ sage: V2 = OctonionMatrixAlgebra(1,field=QQ)
+ sage: C = cartesian_product([V1,V2])
+ sage: x1 = V1([3,4])
+ sage: y1 = V2.one()
+ sage: _all2list(C( (x1,y1) ))
+ [3, 4, 1, 0, 0, 0, 0, 0, 0, 0]
+
"""
if hasattr(x, 'to_vector'):
# This works on matrices of e.g. octonions directly, without
except TypeError: # x is not iterable
return [x]
- if len(xl) == 1:
+ if xl == [x]:
# Avoid the retardation of list(QQ(1)) == [1].
- return xl
+ return [x]
return sum(list( map(_all2list, xl) ), [])