日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

發(fā)布時間:2025/3/15 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

已知一個元素,在一個list中找出相似的元素

使用場景:

已知一個其它來源的字符串, 它有可能是不完全與我數(shù)據(jù)庫中相應(yīng)的字符串匹配的,因此,我需要將其轉(zhuǎn)為適合我數(shù)據(jù)庫中的字符串

使用場景太繞了, 直接舉例來說吧

隨便舉例:

按青島城市的城區(qū)來說,

我數(shù)據(jù)庫中存儲的城區(qū)是個list:['市北區(qū)', '市南區(qū)', '萊州市', '四方區(qū)']等

從其它的數(shù)據(jù)來源得到一個城區(qū)是:市北

我怎么得到與市北相似相近的市北區(qū)

解決方案:

In [1]: import difflib

In [2]: cityarea_list = ['市北區(qū)', '市南區(qū)', '萊州市', '四方區(qū)']

# 正常情況下,我是這么用的

In [3]: a = difflib.get_close_matches('市北',cityarea_list,1, cutoff=0.7)

In [4]: a

Out[4]: ['市北區(qū)']

# 測試關(guān)鍵字改為市區(qū),且要求返回相似度最高的兩個元素

In [5]: a = difflib.get_close_matches('市區(qū)',cityarea_list,2, cutoff=0.7)

In [6]: a

Out[6]: ['市南區(qū)', '市北區(qū)']

# 測試關(guān)鍵字改為市區(qū), 要求返回相似度最高的一個元素

In [7]: a = difflib.get_close_matches('市區(qū)',cityarea_list,1, cutoff=0.7)

In [8]: a

Out[8]: ['市南區(qū)']

詳解:

difflib是python 自帶的一個方法

返回的結(jié)果是個list

返回的list元素數(shù)量是可控的,

cutoff參數(shù)是0到1的浮點數(shù), 可以調(diào)試模糊匹配的精度,一般為0.6就可以了, 1為精確匹配,

補(bǔ)充拓展:python列表進(jìn)行模糊查詢

先看一下代碼

a=['時間1', '時間2', '時間3', 'ab','asds']

dd = [i for i,x in enumerate(a) if x.find('s')!=-1]

print(dd)

需要注意的是這個方法只適合與都是字符串的,因為find是字符串重的方法, 如果list中有數(shù)字和None,都是不行的

以上這篇python 已知一個字符,在一個list中找出近似值或相似值實現(xiàn)模糊匹配就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持python博客。

總結(jié)

以上是生活随笔為你收集整理的python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。