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

两个单词列表之间的比较

两个单词列表之间的比较

慕容森 2022-06-22 17:28:43
我想比较两个列表(结果,真实情况)。如果两者都匹配,则输出应包含 1,如果不是“0”并且输出正敏感。例如: result= [1,2,3,4,5] ground-truth=[2,4] Output= [0,1,0,1,0]我为此实现了python代码:def comparedkeground(dke,grd):    correct=np.zeros(len(dke))    try:        for i in range(len(grd)):            a=dke.index(grd[i])            correct[a]=1    except:        'ValueError'    return correct此代码在某些情况下给出了完美的结果:例如:d=[1,2,30,4,6, 8, 50, 90, 121]e=[30, 2, 50, 90]print(comparedkeground(d,e))[0. 1. 1. 0. 0. 0. 1. 1. 0.]cc=['word', 'flags', 'tv', 'nanjo', 'panjo']ccc=['panjo', 'tv']print(comparedkeground(cc,ccc))[0. 0. 1. 0. 1.]但相同的代码不起作用:u=['Lyme-disease vaccine', 'United States', 'Lyme disease', 'Allen Steere']u1= ['drugs', 'Lyme-disease vaccine', 'Lyme disease']print(comparedkeground(u,u1))[0. 0. 0. 0.]
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

这是因为u数组没有'drugs'值,输出dke.index(grd[i])会出错!您将try语句放在错误的位置,您必须像这样更改它:


def comparedkeground(dke,grd):

    correct=np.zeros(len(dke))

    for i in range(len(grd)):

        try:

            a=dke.index(grd[i])

            correct[a]=1

        except:

            'ValueError'

    return correct


查看完整回答
反对 回复 2022-06-22
?
ibeautiful

TA贡献1993条经验 获得超6个赞

如果您正在运行 python3,请尝试:

def comparedkeground(dke, grd):
    return [int(i in grd) for i in dke]



查看完整回答
反对 回复 2022-06-22
?
皈依舞

TA贡献1851条经验 获得超3个赞

这是因为当您的主列表中不存在该元素时,循环中会发生错误,该错误会停止当前 for 循环的执行,但尚未检查数组的其余部分,因此请将您的try catch块移动一点这个


import numpy as np

def comparedkeground(dke,grd):

    correct=np.zeros(len(dke))

    for i in range(len(grd)):

        try:

            a=dke.index(grd[i])

            correct[a]=1

        except:

            'ValueError'

    return correct


u=['Lyme-disease vaccine', 'United States', 'Lyme disease', 'Allen Steere']

u1= ['drugs', 'Lyme-disease vaccine', 'Lyme disease']

print(comparedkeground(u,u1))

输出


[ 1.  0.  1.  0.]

我将 try 块移到内部,因为如果找不到当前元素,则应在列表中搜索下一个元素,因此下一次迭代应该存在循环,因此应该在迭代本身中处理任何错误。


查看完整回答
反对 回复 2022-06-22
  • 3 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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