You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需for循环根据True值起止区间生成布尔列表的方法(兼容pandas)

区间列表转布尔列表/布尔Series 一行实现

输入示例

x = [[1,4],
     [6,7],
     [9,9]]
# 预期输出:[False, True, True, True, True, False, True, True, False, True]

普通Python列表场景

自动以区间的最大结束值作为结果列表的最大索引(适配0起始索引,结果长度为最大结束值+1),一行实现:

bool_list = [any(start <= idx <= end for start, end in x) for idx in range(max(end for _, end in x) + 1)]

如果需要自定义结果长度,直接替换range内的参数即可,比如生成索引0到11、长度为12的结果:

bool_list = [any(start <= idx <= end for start, end in x) for idx in range(12)]

Pandas Series场景

生成指定长度的布尔Series

import pandas as pd
bool_series = pd.Series(range(max(end for _, end in x) + 1)).apply(lambda val: any(s <= val <= e for s, e in x))

对现有Series做区间匹配判断

假设已有待判断的Series为s,直接调用apply即可完成批量判断:

bool_series = s.apply(lambda val: any(s_range <= val <= e_range for s_range, e_range in x))

内容的提问来源于stack exchange,提问作者user3521099

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:57:03