首先,对于你最初的问题,如果rouDIct符合(1.0, 3.0) -> {1.0: 3.0}这样的格式的话,max(i for i in rouDict)(甚至max(rouDict))就可以了。
然后用字典存储坐标实在有点别扭,用列表更自然、类更抽象,不过我不擅长OOP……列表存储的话,积分函数可以改成这样(LoP(list of points)是存储点集的列表)。
def integral(LoP):
prev, I = (None, None), 0 #initialize
for (x, y) in LoP:
if prev: #
(x0, y0), prev = prev, (x, y)
I += (y0 + y) * (x - x0) / 2
else:
prev = x, y
return I
# way to access max_x of LoP:
max(x for (x, y) in LoP)
datalist = [(0.00279866118867807, 0.000563994158327509), (0.0207527120021366, 0.00249009813782483), (0.0313592117151673, 0.00575558169533519)]
def maxX(lp,rp):
return lp if lp[0]>rp[0] else rp
def minX(lp,rp):
return lp if lp[0]
rouDict是什么类型, 需要说明一下. 是python自带的set()?