list comprehension question

Mike C. Fletcher mcfletch at rogers.com
Sun Aug 11 22:10:58 CEST 2002


x is a list of range(2,12) for the 1 element in list.  Lists don't have 
a ** (number) operator defined.

try "print list" to see what's going on.
 >>> list = [range(2, 12)]
 >>> print list
[[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]]
 >>>

BTW, it's good practice not to name variables after the builtin 
functions/types (such as list).

HTH,
Mike

brobbins333 at shaw.ca wrote:
> Why doesn't this work?
> 
> list = [range(2, 12)]
> [(x ** 2) + x + 2 for x in list]
> 
> error: unsupported operand type for **


-- 
_______________________________________
   Mike C. Fletcher
   Designer, VR Plumber, Coder
   http://members.rogers.com/mcfletch/






More information about the Python-list mailing list