以下は2つのアレイです。
import difflib
import scipy
import numpy
a1=numpy.array(['198.129.254.73','134.55.221.58','134.55.219.121','134.55.41.41','198.124.252.101'], dtype='|S15')
b1=numpy.array(['198.124.252.102','134.55.41.41','134.55.219.121','134.55.219.137','134.55.220.45', '198.124.252.130'],dtype='|S15')
difflib.get_close_matches(a1[-1],b1,2)
出力:
['198.124.252.130', '198.124.252.102']
に最も'198.124.252.102'
近いものであってはなり'198.124.252.101'
ませんか?
いくつかの浮動型の重みについて指定されているドキュメントを調べましたが、アルゴリズムの使用に関する情報はありません。
最後の2つのオクテットの絶対差が1であるかどうかを確認する必要があります(最初の3つのオクテットが同じである場合)。
したがって、最初に最も近い文字列を見つけてから、その最も近い文字列で上記の条件を確認しています。
これを達成するための他の機能または方法はありますか?また、どのようにget_close_matches()
動作しますか?
ipaddr
ipsに対してそのような操作は行われていないようです。