一种方法是使用嵌套列表理解data = [[0, 1], [0, 1], [1, 2], [1, 5], [5, 10], [11, 20]]check = [2, 4, 6, 9]result = [any(1 if l <= y <= r else 0 for y in check) for l, r in data]# [False, False, True, True, True, False]如果您想要 0 或 1,您可以使用以下result = [max(1 if l <= y <= r else 0 for y in check) for l, r in data]# [0, 0, 1, 1, 1, 0]
由于您的范围是隐式排序的,您可以简单地检查您的数字是否在开始元素和停止元素之间:for each element, e, in your input vector: for each range pair (low, high) in your interval matrix: if low <= e <= high; then true else false在 Python 中:def check_within_range(arr, mat): return [[low <= e <= high for e in arr] for (low, high) in mat]