2015-05-20 103 views
0

这里是一个新手问题的位。 我已经绘制了Python中的一些数据,并且我需要知道x轴上第一次相应的y值下降到某个数字以下的位置。我想忽略y值的进一步增加。Python 2.7绘制查询

我已经使用压缩功能类似的尝试:

for x_val, y_val in zip(xvalues, yvalues): 
    if 100 < y_val < 150: 
    edge1 = x_val 

 但我似乎无法让我的阈值正确的,我想,只是选择在第一时间y值的技术降到一定数量以下。

谢谢。 Helen

+0

您是否尝试过在'if'块的末尾添加'break'? –

回答

0

一旦Y值低于阈值,您必须从循环中取break,否则循环将继续,如果Y值低于另一个阈值,则X值将被覆盖。

for x_val, y_val in zip(xvalues, yvalues): 
    if 100 < y_val < 150: 
     edge1 = x_val 
     break 

或者你可以使用itertools.dropwhile跳过所有值不在该范围:

next(itertools.dropwhile(lambda t: not 100 < t[1] < 150, zip(xvalues, yvalues))) 
0

尝试

for x_val, y_val in zip(xvalues, yvalues): 
    if 100 < y_val < 150: 
     edge1 = x_val 

您的代码不起作用,因为里面的语句,如果是没有执行,因为它没有正确缩进 或 如果你想所有的x_val满足if语句

x=[] 
for x_val, y_val in zip(xvalues, yvalues): 
    if 100 < y_val < 150: 
     x.append(x_val)