Python嵌套列表校验:指定列组合对应Branch值需唯一的实现方案
实现分支一致性校验的解决方案
核心思路
我们可以用一个字典来记录每个唯一标识组合(project、repo、folder、target)对应的分支值。遍历列表时,对每个条目做以下检查:
- 如果该标识组合已存在于字典中,就对比当前分支与字典中存储的分支是否一致,不一致则抛出异常
- 如果不存在,就将该标识组合和对应的分支存入字典
- 完全重复的条目(标识组合和分支都相同)会被自动跳过,无需额外处理
代码实现
links_list = [['project1','repo1', 'folder1', 'target1', 'link1', 'branch1'], ['project1', 'repo1', 'folder1', 'target1', 'link1', 'branch1'], ['project1', 'repo1', 'folder1', 'target1', 'link1', 'branch2'], ['project2', 'repo2', 'folder2', 'target2', 'link2', 'branch2']] # 创建字典存储标识组合到分支的映射 branch_map = {} for item in links_list: # 提取唯一标识(前四个元素)和分支(最后一个元素) key = tuple(item[:4]) # 用元组作为字典键,因为列表不可哈希 current_branch = item[-1] if key in branch_map: # 检查分支是否一致 if branch_map[key] != current_branch: raise ValueError(f"标识组合 {key} 对应不一致的分支:{branch_map[key]} 和 {current_branch}") else: # 首次出现,存入字典 branch_map[key] = current_branch # 如果校验通过,继续后续逻辑 print("所有分支校验通过")
代码说明
- 用
tuple(item[:4])把前四个元素转换成元组,因为列表不能作为字典的键(不可哈希),而元组可以 - 当检测到同一标识组合对应不同分支时,会抛出
ValueError并终止脚本,符合要求 - 完全重复的条目不会触发任何异常,因为分支对比会通过
内容的提问来源于stack exchange,提问作者vel
相关产品推荐
相关产品推荐

