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

Python代码问题:检测同组人员是否在目标组同一组,结果不符

问题排查:sameGroup人员组匹配违规次数计算错误

需求:判断sameGroup中的每组人员是否全部存在于groups的同一个组中,满足条件则累加违规次数violations。当前代码运行指定测试用例输出为0,预期输出为1,需排查错误。

原代码

X = int(input())

sameGroup = []
groups = []

violations = 0

for i in range(X):
    sameName = input().split()
    sameGroup.append(sameName)
for i in range(X):
    group = input().split()
    groups.append(group)

for i in range(len(sameGroup)):
    names = sameGroup[i]
    print(names)
    for i in range(len(groups)):
        if names in groups[i]:
            print("yo")
            violations += 1

print(violations)

测试用例输入

2
hello Hi
Hel hooo
Hello Hi yoo
helloo heee haaa

当前输出

['hello', 'Hi']
['Hel', 'hooo']
0

预期输出

1


错误原因分析

  1. 逻辑判断错误:核心问题出在if names in groups[i]这行。names是一个列表(如['hello', 'Hi']),而groups[i]是另一个人员列表,这行代码判断的是整个names列表是否作为单个元素存在于groups[i]中,而非判断names里的每个成员是否都属于groups[i],完全不符合需求逻辑。
  2. 变量名冲突:嵌套循环重复使用了变量i,导致外层循环的i被内层循环覆盖,引发循环逻辑混乱。
  3. 大小写不匹配:测试用例中sameGroup第一组的hello与groups第一组的Hello大小写不同,严格匹配下无法命中,这也是当前输出为0的直接原因之一。

修复后的代码

X = int(input())

sameGroup = []
groups = []

violations = 0

for i in range(X):
    sameName = input().split()
    sameGroup.append(sameName)
for i in range(X):
    group = input().split()
    groups.append(group)

for i in range(len(sameGroup)):
    names = sameGroup[i]
    # 遍历每个组,检查当前names的所有成员是否都在该组内
    for j in range(len(groups)):
        # 忽略大小写的匹配(如果需要严格匹配则去掉.lower())
        group_lower = [g.lower() for g in groups[j]]
        if all(name.lower() in group_lower for name in names):
            violations += 1
            # 一个sameGroup组只要匹配到一个groups组就算违规,避免重复累加
            break

print(violations)

修复说明

  • 替换嵌套循环变量名为j,避免与外层循环的i冲突。
  • 使用all()函数判断names中的每个成员是否都存在于当前groups组中,符合需求逻辑。
  • 增加大小写转换处理,解决测试用例中大小写不匹配的问题,确保能命中预期匹配场景,输出结果为1。
  • 匹配到符合条件的组后添加break,避免同一个sameGroup组匹配多个groups组时重复累加违规次数(可根据实际需求调整是否保留)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:23:22