逐行比较两个列表,如果值相同则返回

时间:2020-07-07 18:12:36

标签: python list for-loop

嗨,我有两个列表。

predicted = [1.0, 0.0, 0.0, 0.0, 2.0, 1.0]
actualnum = [0.0, 0.0, 1.0, 0.0, 2.0, 1.0]

我想知道如何按每个数字比较这两个列表,并获取匹配数。

基本上:

if predicted[0] matches actualnum[0] then 1
if predicted[0] matches actualnum[1] then 0

所以我会有:

predicted[0] not equal to actualnum[0] = 0
predicted[1] equal to actualnum[1] = 1
predicted[2] not equal to actualnum[2] = 1
etc. 

最后我将在6场比赛中有4场。

如何为此创建for循环。我看过示例,但只说了set(a)&set(b)-但这仅显示了集合中有多少个相似的数字。但是,我真的只需要将同一索引[0]中的值仅与[0]和[1]仅与[1]进行比较。

1 个答案:

答案 0 :(得分:1)

您可以通过许多不同的方式访问两个列表的ith值。以下是一些选项:

for i in range(len(predicted)):
    p = predicted[i]
    a = actualnum[i]
for i, p in enumerate(predicted):
    a = actualnum[i]
for p, a in zip(predicted, actualnum):

在循环的主体中,只需比较pa并打印是否相等就可以打印任何内容。

如果只想知道有多少个值匹配,可以执行以下操作:

matches = sum(1 for p, a in zip(predicted, actualnum) if p == a)
相关问题