我想为直方图准备数据。我的数据(在以下代码中使用HttpServletRequest
)包含D
和[-200,1000]
之间的值,我想将它们分配到范围if statement
的二进制位。
我的代码如下所示:
[0,20]
等等。但似乎程序不理解if语句中的否定条件。因此,如果值为for t in range(0,731):
if(D[t]<(-130)):
xbin[t]=0
if(D[t]>=(-130) and D[t]<=(-120)):
xbin[t]=1
if(D[t]>=(-120) and D[t]<=(-110)):
xbin[t]=2
if(D[t]>=(-110) and D[t]<=(-100)):
xbin[t]=3
if(D[t]>=(-100) and D[t]<=(-50)):
xbin[t]=4
if(D[t]>=(-50) and D[t]<=0):
xbin[t]=5
if(D[t]>=0 and D[t]<=50):
xbin[t]=6
,<0
或其他值,则将xbin=6
分配给< -120
无关紧要。
我怎样才能解决这个问题?
谢谢!
答案 0 :(得分:0)
Python理解负面比较。问题在于你的条件,其中一些相互冲突。要拒绝该问题,您需要使用elif
而不是多个if
,以便检查所有条件。此外,您不需要显式写入和在您的条件之间,python将自动链接它们并且它们具有相同的优先级。
for t in range(0,731):
if D[t] < -130 :
xbin[t]=0
elif -110 <= D[t]<= -120:
xbin[t]=1
elif -120 <= D[t] <= -110:
xbin[t]=2
elif -110 <= D[t] <= -100:
xbin[t]=3
elif -100 <= D[t] <= -50:
xbin[t]=4
elif -50 <= D[t] <= 0:
xbin[t]=5
elif 0 <= D[t]<= 50:
xbin[t]=6