dmitrey wrote: > Thanks all. > I tried all the approaches but they don't work in my situation > I have a variable x that can be > x = 1 > x = [1, 2, 3] > x = numpy.array([1,2,3]) > so all troubles are with 1st case >>>> x=1 >>>> list(x) > Traceback (most recent call last): > File "<string>", line 1, in <string> > TypeError: iteration over non-sequence >>>> list(array(1)) > Traceback (most recent call last): > File "<string>", line 1, in <string> > ValueError: Rank-0 array has no length. >>>> array(1).tolist() > Traceback (most recent call last): > File "<string>", line 1, in <string> > ValueError: rank-0 arrays don't convert to lists. > > Here I used Python 2.4.3, numpy 1.02
All of these results are entirely correct. A scalar (or rank-0 array) is not a sequence. If you have a need to transform a scalar into a sequence (e.g. transform 1 to [1]), then you can use numpy.atleast_1d(x).tolist(). -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list