Python Interval库简单用法

问题描述: 有这样一个需求,给定一个数字10,我要判断它在哪个区间范围之内[0, 5], [5, 8], [8, 10],但是我只有list形式数据[0, 5, 8, 10],那要怎样判断呢?
首先,想到的是两两之间生成区间,然后逐一判断,以下是相关代码:

from intervals import IntInterval
data_list = [0, 5, 8, 10]
list_interval = []
query_num = 5

# 获得两两之间的区间范围
for i in range(len(data_list)):
	if i != len(data_list) - 1:  # 为了排除最后一个位置,索引超出矩阵维度
		data_range = IntInterval.closed(data_list[i], data_list[i+1])  # 这里用的双闭[2, 3],两边都是闭合区间,可以用open_closed()→(],或者closed_open()→[)
	    list_interval.append(data_range)

# 判断给定数字是否在区间范围内
location_query_interval = []
for single_interval in list_interval:
	if query_num in single_interval:
		localtion_query_interval.append(single_interval)
# 取出所在区间的两端值
left_index = location_query_interval.lower()
right_index = location_query_interval.upper()
print('[{}, {}]'.format(left_index, right_index))

还有一个思路是,可以用pands里面的cut函数,这个本质上也是调用的Interval,可以自己尝试一下。

你可能感兴趣的:(Python基础)