获取列表值之间的中间值列表

bri*_*ium 3 python list python-2.7

我有一个值列表:[0,2,3,5,6,7,9]并且想要获取每个数字之间中间的数字列表:[1, 2.5, 4, 5.5, 6.5, 8]。python中有没有一种巧妙的方法来做到这一点?

Chr*_*nds 5

这是一个简单的列表理解(请注意,我假设您希望所有值都为floats 而不是ints 和floats的混合):

>>> lst = [0,2,3,5,6,7,9] 
>>> [(a + b) / 2.0 for a,b in zip(lst, lst[1:])]
[1.0, 2.5, 4.0, 5.5, 6.5, 8.0]
Run Code Online (Sandbox Code Playgroud)

(除以2.0确保在 Python 2 中不应用楼层划分)