I\'m getting this strange error trying to run a script, the code appears to be correct but it seems python (3) didn\'t liked this part:
def function(
In the middle of your expression you do range(-30,0) + range(1,30)
. This is causing the error because in Python 3 range()
returns an iterator, not a list like in Python 2.x.
One way to get this to work is to just convert each range to a list before adding:
d = dict([(randrange(101), Racional(coeff(randrange(-20,20)),
coeff(choice(list(range(-30,0))+
list(range(1,30))))))
for k in range(non_nil)])
Since it seems like you want to just exclude 0
from the range(-30, 30)
, you could also use filter(None, range(-30, 30))
.
Alternatively you could use choice((1, -1)) * choice(range(1, 30))
, which is equivalent to choice(list(range(-30, 0)) + list(range(1, 30)))
. (edit: actually the prior expression will not include -30 in the possibilities, not sure whether or not that is an issue).