为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2023-02-22 10:54:45
您好,我有两个列表。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 1if predicted[0] matches actualnum[1] then 0所以我会:predicted[0] not equal to actualnum[0] = 0predicted[1] equal to actualnum[1] = 1predicted[2] not equal to actualnum[2] = 1etc. 最后,我将参加 6 场比赛中的 4 场。我怎样才能为此制作for循环。我看过示例,但只说 set(a)&set(b) - 但这仅显示集合中有多少相似的数字。但是,我真的只需要将同一索引 [0] 中的值仅与 [0] 和 [1] 中的值进行比较,仅与 [1] 进行比较。
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以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)


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号