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

如何检测动态生成主列表的所有子列表的元素数量或长度是否一致

嵌套动态列表子项长度/字符数一致性校验方案

核心思路

无需两两比对所有子列表,仅需以第一个子列表的目标校验值作为基准,遍历剩余所有子列表逐一匹配即可,完全适配子列表数量不固定的场景。

方案1:校验所有子列表的元素数量一致

适配需要判断子列表长度是否相等的需求,附带边界校验和不匹配定位能力:

def check_sub_length_consistency(nested_list):
    # 主列表为空时可根据业务需求调整返回值,此处默认返回True
    if not nested_list:
        return True
    # 取第一个子列表长度为基准值
    base_length = len(nested_list[0])
    for idx, sub_list in enumerate(nested_list):
        current_length = len(sub_list)
        if current_length != base_length:
            print(f"索引为{idx}的子列表长度不匹配,基准值:{base_length},实际值:{current_length}")
            return False
    return True

方案2:校验所有子列表的总字符数一致

适配需要判断子列表内所有元素总字符数相等的需求,非字符串元素可自行调整转换逻辑:

def calc_sub_char_count(sub_list):
    # 所有元素转为字符串后统计总字符数,可根据业务调整计算规则
    return sum(len(str(item)) for item in sub_list)

def check_sub_char_consistency(nested_list):
    if not nested_list:
        return True
    base_char_count = calc_sub_char_count(nested_list[0])
    for idx, sub_list in enumerate(nested_list):
        current_count = calc_sub_char_count(sub_list)
        if current_count != base_char_count:
            print(f"索引为{idx}的子列表总字符数不匹配,基准值:{base_char_count},实际值:{current_count}")
            return False
    return True

调用示例

针对你提到的3个子列表的测试场景:

# 测试用例:3个长度不等的子列表
test_list = [["item1", "item2", "item3"], ["item4", "item5"], ["item6", "item7", "item8", "item9"]]

# 校验子列表长度
print(check_sub_length_consistency(test_list))
# 输出:索引为1的子列表长度不匹配,基准值:3,实际值:2
# 输出:False

# 校验子列表总字符数
print(check_sub_char_consistency(test_list))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:02