Python查找列表1中不在列表2中的元素简单代码不工作

2024-10-03 04:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

这里只有一行代码,我不会用数据来打扰您,因为它相当大。在

我有allRequirements中某些软件的所有需求的列表,还有一个测试用例存在于requirementWithCoverage中的那些需求的第二个列表。在

我想生成一个没有测试用例覆盖率的需求列表。在

很多网站和S.O的问题都给出了这样的答案:

notCovered = list(set(allRequirements) - set(requirementWithCoverage))

但是:

len(set(allRequirements))为779且
len(set(requirementWithCoverage))为201,
len(set(notCovered))是650

很明显,我犯了一个非常基本的错误,但就我的一生而言,我看不到它。我做错什么了?在


Tags: 数据答案代码列表len软件网站错误
1条回答
网友
1楼 · 发布于 2024-10-03 04:30:08

您观察到的结果是由于requirementWithCoverage包含了allRequirements中没有的元素。下面是一个例子:

allRequirements         = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
requirementWithCoverage = [1,                7,           11, 12] # 11 and 12 are unexpectedly there
notCovered              = list(set(allRequirements) - set(requirementWithCoverage))

print(len(allRequirements))          # 10
print(len(requirementWithCoverage))  #  4
print(len(notCovered))               #  8 (6 was expected)

您可以通过打印set(requirementWithCoverage).issubset(set(allRequirements))的返回值来确认这一点,该值应该为False,而您期望它为True。
更好的是,您可以通过以下方式打印requirementWithCoverage的意外元素:

^{pr2}$

相关问题 更多 >