python 从序列中提取符合条件的数字的个数

编写函数:def histogram(values, dividers),将一个值序列values和一个bin divider序列作为参数,需要返回一个合适类型的序列(例如,一个数组),其中包含每个bin中的计数。

例如:假设values是数字[1,..,10],dividers是[2,5,7],返回的histogram应该是[2,3,2,3]。

小白求解题思路!!谢谢大佬们

def histogram(values, dividers):

 

可以使用Python中的内置函数numpy.histogram来实现这个功能,具体代码如下:

import numpy as np

def histogram(values, dividers):
    hist, _ = np.histogram(values, bins=dividers)
    return hist.tolist()

该函数使用了numpy.histogram函数,该函数将输入的数值序列values和分隔符序列dividers作为输入,并返回分隔符下每个bin中的计数。
接下来,我们使用tolist()方法将numpy数组转换为Python列表,并将其作为函数的输出。
以下是一个使用示例:

values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
dividers = [2, 5, 7]
result = histogram(values, dividers)
print(result)

这会输出[2, 3, 2, 3],这正是我们期望的每个bin中的计数。