亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個單詞列表之間的比較

兩個單詞列表之間的比較

慕容森 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 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號