list comprehension question
j-jinkins at usa.net
Sun Aug 11 23:18:28 CEST 2002
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 **
Try lst = range(2, 12) instead of [range(2, 12)]
In your example the first/only element of list is [2, 3, ...., 11],
which is not a number and cannot be squared.
BTW list as a variable name shadows the builtin type name, list. It
would be better to use lst or something like that.
More information about the Python-list