python列表大小有限度么_python – 找到包含列表中所有角度的最小范围

我有一个表示角度(以度为单位)的排序值列表,全部在[0,360]范围内

我的目标是找到适合列表中所有角度的最佳范围(最小范围).

一些例子:

>鉴于列表角度= [0,1,2,10,20,35],答案将是(0,35).

>鉴于列表角度= [10,20,340,355],由于值的循环性质,答案将是(340,20).

我当前的脚本如下:

MAX_ANGLE = 360

def get_best_range(angles):

number_of_angles = len(angles)

# Append the list of angles with the same angles plus 360 (max value)

angles = angles + [angle + MAX_ANGLE for angle in angles]

# Create a list of all possible ranges

possible_ranges = [(angles[i], angles[i+number_of_angles - 1]) for i in range(number_of_angles)]

# Find the best range (minimum range)

best_range = min(possible_ranges, key = lambda ang_range: ang_range[1] - ang_range[0])

return best_range[0], best_range[1]%MAX_ANGLE

嗯,这是我迄今为止最好的方法,它适用于O(n),这很好,但在我看来,在python中可能有更好的方法.也许有些工具可以使用循环值?在处理角度或其他圆形值时,我总是有点麻烦.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值