是否有函数或方法统计数组各数值区间内的元素总数?
统计数组数值区间元素总数的实现方法
核心思路
先明确要统计的连续数值区间,遍历数组元素时判断其所属区间,最终累加各区间的元素计数即可。
Python 实现示例
以你提供的示例数组 [23,14,67,17,87] 为例,基础实现代码如下:
def count_interval_elements(arr): # 初始化各区间计数 interval_counts = { "0-10": 0, "10-20": 0, "20-30": 0, "30-40": 0, "40-50": 0, "50-60": 0, "60-70": 0, "70-80": 0, "80-90": 0 } for num in arr: if 0 <= num < 10: interval_counts["0-10"] += 1 elif 10 <= num < 20: interval_counts["10-20"] += 1 elif 20 <= num < 30: interval_counts["20-30"] += 1 elif 30 <= num < 40: interval_counts["30-40"] += 1 elif 40 <= num < 50: interval_counts["40-50"] += 1 elif 50 <= num < 60: interval_counts["50-60"] += 1 elif 60 <= num < 70: interval_counts["60-70"] += 1 elif 70 <= num < 80: interval_counts["70-80"] += 1 elif 80 <= num < 90: interval_counts["80-90"] += 1 return interval_counts # 测试示例数组 sample_arr = [23,14,67,17,87] result = count_interval_elements(sample_arr) for interval, count in result.items(): print(f"{interval}: {count}")
运行后输出结果:
0-10: 0 10-20: 2 20-30: 1 30-40: 0 40-50: 0 50-60: 0 60-70: 1 70-80: 0 80-90: 1
灵活适配方案(动态生成区间)
如果区间是固定步长(比如每10为一个区间),可以不用手动写所有判断逻辑,通过计算动态匹配区间:
def count_dynamic_intervals(arr, step=10, max_range=90): interval_counts = {} # 自动生成所有区间 for i in range(0, max_range, step): interval = f"{i}-{i+step}" interval_counts[interval] = 0 for num in arr: # 计算元素所属区间的起始值 interval_start = (num // step) * step # 过滤超出设定最大范围的元素 if interval_start >= max_range: continue interval = f"{interval_start}-{interval_start+step}" interval_counts[interval] += 1 return interval_counts # 测试 result = count_dynamic_intervals(sample_arr) for interval, count in result.items(): print(f"{interval}: {count}")
修改step(区间步长)和max_range(最大区间上限)就能快速适配不同的区间统计需求。
内容的提问来源于stack exchange,提问作者Dems
相关产品推荐
相关产品推荐

