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

如何通过迭代判断嵌套列表子列表和是否在指定区间并返回结果

寻找元素和在指定范围内的子可迭代对象

需求说明

遍历嵌套的可迭代对象(如列表嵌套列表、元组等),检查每个子对象的元素和是否落在指定的上下边界之间:

  • 找到第一个符合条件的子对象,直接返回它
  • 若所有子对象都不符合,返回False

示例

传入嵌套对象 [[1,2,3], [4,5,6], [7,8,9], [1000], (10000, 10001)],上下边界设为900和11000,返回结果是[1000]——因为它的元素和为1000,刚好处于区间内;而元组(10000, 10001)的和为20001,超出上限,其余子列表的和均低于900。

Python 实现代码

def find_matching_subiterable(nested_iterable, lower, upper):
    for item in nested_iterable:
        # 筛选出可迭代且非字符串的子对象(避免误处理字符串)
        if hasattr(item, '__iter__') and not isinstance(item, str):
            try:
                total = sum(item)
                if lower <= total <= upper:
                    return item
            except TypeError:
                # 子对象包含不可求和元素时,直接跳过
                continue
    return False

代码说明

  • 遍历嵌套对象的每个元素,先判断是否为可迭代对象(排除字符串,因为我们要处理的是数值组成的子结构)
  • 对每个符合要求的子对象计算元素和,判断是否在[lower, upper]区间内,符合则立即返回
  • 若子对象包含无法求和的类型(如非数值元素),直接跳过该子对象
  • 遍历结束未找到符合条件的子对象,返回False

测试示例

# 运行测试
result = find_matching_subiterable([[1,2,3], [4,5,6], [7,8,9], [1000], (10000, 10001)], 900, 11000)
print(result)  # 输出: [1000]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:45:37