Дано:Get x1, x2 при условии, что х принадлежит [x1, x2]
xvalues = [0.0, 1829.0, 3658.0, 5487.0]
и
nodesF = [[1, 0, 0, 0], [2, 0.5, 0, 0], [3, 5487, 0, 0]]
Я хочу, чтобы петля над nodesF
и вернуть x1
и x2
ценности, которые каждый x
из nodesF
лежат между, то есть x относится к [x1,x2]
с x1<x2
.
Мой код:
for nodeID, x, y, z in nodesF:
x2= min(value for value in xvalues if value >= x)
x1= max(value for value in xvalues if value <= x)
if x1==x2:
x1=None
x2=None
x2= min(value for value in xvalues if value > x)
x1= max(value for value in xvalues if value <= x)
if x2==None or x2<=x1:
x2= min(value for value in xvalues if value >= x)
x1= max(value for value in xvalues if value < x)
elif x1==None or x2<=x1:
print "Error"
При х = 5487 я получаю:
x2= min(value for value in xvalues if value > x) ValueError: min() arg is an empty sequence.
Так что мой вопрос, как получить пройти эту ошибку? если бы я мог просто установить x2=None
, когда min()
пуст, все будет в порядке! Благодаря!