Python 2.7 浮点对象在赋值时不可iterable
我在运行这个python文件时一直遇到这个错误。它发生在这一行: p1x,p1y=newList[0]Python 2.7 浮点对象在赋值时不可iterable,python-2.7,Python 2.7,我在运行这个python文件时一直遇到这个错误。它发生在这一行: p1x,p1y=newList[0] TypeError:“Float”对象不可编辑 代码如下: newList = [] for i, val in enumerate(poly): if poly[i] != True: newList.append(poly[i][0]) n = len(newList) inside =False p1x, p1y = newList[0] for i
TypeError:“Float”对象不可编辑 代码如下:
newList = []
for i, val in enumerate(poly):
if poly[i] != True:
newList.append(poly[i][0])
n = len(newList)
inside =False
p1x, p1y = newList[0]
for i in range(n+1):
p2x, p2y = newList[i % n]
if y > min(p1y,p2y):
if y <= max(p1y,p2y):
if x <= max(p1x,p2x):
if p1y != p2y:
xinters = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
if p1x == p2x or x <= xinters:
return True
p1x,p1y = p2x,p2y
return inside
它是有效的,但不是相反的?因为
newList[0]
是一个Float
,所以它不能被分成两部分(正如原始代码所尝试的那样)。您的第二次尝试是为p1x
和p1y
中的每一个分配相同的Float
,这可能不是您想要做的;但是如果是,那么您可以编写p1x,p1y=newList[0],newList[0]
什么是newList[0]?如果它是一个单一的浮点值,它将给你一个错误 newList[0]必须是一个元组,如(1,2),才能对其进行迭代 您可以这样做(如果newList[0]和newList[1]是单个值): 或
p1x = newList[0]
p1y = newList[0]
p1x, p1y = newList[0], newList[1]
newList[0] = (1,2)
p1x, p1y = newList[0]