Float对象在赋值时不可迭代

时间:2014-11-12 19:54:41

标签: 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 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

为什么我这样做

p1x = newList[0]
p1y = newList[0]

它有效,但不是相反?

2 个答案:

答案 0 :(得分:0)

由于newList[0]Float,因此无法将其分成两部分(原始代码尝试)。您的第二次尝试是将相同的 Float分配给p1xp1y,这可能不是您想要做的;但如果,那么你可以写p1x,p1y = newList[0], newList[0]

答案 1 :(得分:0)

什么是newList [0]?
如果它是一个浮点值,它将给你一个错误。

newList [0]必须是一个元组,如(1,2),迭代它。

你可以这样做(如果newList [0]和newList [1]是单个值。):

p1x, p1y = newList[0], newList[1]

newList[0] = (1,2)
p1x, p1y = newList[0]