列表中的最小Levenshtein距离

2024-04-30 06:52:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如何计算输入随行一起提供的一组行之间的最小距离(总共25行),您需要找到具有最小距离的行并指定距离本身。我做什么

file = open('input.txt')
bio = []
for i in range(N):
    a = file.readline().strip()
    bio.append(a)
distance = 0
min_d = 0
dop_l_1 = []
dop_l_2 = []
for i in bio:
    list_d = []
    for j in range(len(bio)):
        distance = distance_1(i, bio[j])
        list_d.append(distance)
    res = nsmallest(2, list_d)[1]
    ind = list_d.index(res)
    dop_l_1.append((i, bio[ind]))
    dop_l_2.append(res)
    if min(dop_l_2) == 1:
        break
mini = min(dop_l_2)
m = dop_l_2.index(mini)
m_2 = dop_l_1[m]
fout = open('output.txt', 'w')
print(bio.index(m_2[0]) + 1, bio.index(m_2[1]) + 1, mini, file=fout)

距离_1-该函数计算两行之间的距离

我的实现太慢了,有没有办法从一组行中找到距离最小的两行,除非依次通过所有行


Tags: intxt距离forindexresopenmin