看板 Python 關於我們 聯絡資訊
各位版友好: 小弟剛學python不久,有個問題向各位請教 我現在想以fuzzywuzzy套件比對兩個物件內所有地址的相似度,但是這兩個物件的長度 不同,如下code所述: ---- obj1=["信義區一段一號","台北市信義段20號"] obj2=["台北市信義區一段一號","台北市信義段20號","台北市信義一路二段","台北市信 義區"] fuz2=fuzz.ratio(obj1,obj2) print fuz2 ---- 上述code只能傳回一個值,就我的理解應該是obj1的所有字串跟obj2的所有字串相比之 simiarity,但是我想要做的是,把obj1內的每個物件都跟obj2的每個物件比對, 並且傳回每個與之相比的simiarity,以下是我想呈現的樣貌: ======================================================================= obj1 obj2 similarity(以下為自己假設的數值) 信義區一段一號 台北市信義區一段一號 0.8 信義區一段一號 台北市信義段20號 0.6 信義區一段一號 台北市信義一路二段 0.4 信義區一段一號 台北市信義區 0.3 台北市信義段20號 台北市信義區一段一號 0.5 台北市信義段20號 台北市信義段20號 1 台北市信義段20號 台北市信義一路二段 0.4 台北市信義段20號 台北市信義區 0.3 ======================================================================= 懇請版上各路先進指點,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.27.199 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1441702586.A.225.html
bibo9901: for s,t in itertools.product( obj1, obj2 ): 09/08 17:46
bibo9901: print(fuzz.ratio(obj1[s],obj2[t]) ) 09/08 17:46
bibo9901: 不過如果連 nested loop 都寫不出來 基本功該多練練 ... 09/08 17:49
ardodo: 感謝指點,我再試試看 09/08 22:08
bibo9901: 啊啊 我把你的obj看成dict了 09/08 22:42
bibo9901: 應該是 print(s,t,fuzz.ratio(s,t) ) 09/08 22:42