<p>我们会有一个字符串列表</p>
<pre><code>list_of_lists = [["Mouse", "Cat", "Dog", "Gremlinge", "Horse"],
["Mouse", "Cat", "Hors", "Dog", "Gremling"],
["Mouse", "Cat", "Horrs", "Dog", "Greemling"],
["Mouse", "Cate", "Dog", "Gremlinge", "Horse"],
["Mose", "Cat", "Hors", "Dog", "Gremling"],
["Mouse", "Cat", "Horser", "Doeg", "Gremling"]]
</code></pre>
<p>然后我们将遍历这个列表,跟踪我们“所在”的列表的索引,并将这个列表与它后面的所有列表进行比较。在</p>
^{pr2}$
<p>编辑:下面的代码将成对的列表传递到一个函数中,并将它们分成组。然后我们将把这些组中的每一组处理成集合,以消除重复项。在</p>
<pre><code>target_num_words = 6
target_num_words
def merging(list_of_lists):
groups = []
for i, a in enumerate(list_of_lists):
for b in list_of_lists[i+1:]:
if number_of_matches(a, b) >= target_num_words:
for g in groups:
if a in g or b in g:
g.append(a if b in g else b)
break
else:
groups.append([a, b])
merged = []
for g in groups:
if len(g) >= target_num_lists:
merged.append({x for l in g for x in l})
return merged
</code></pre>
<p><code>number_of_matches</code>基本上是你的Levenshtein代码,除了它只返回两个列表之间匹配单词的数量。即使这不是你想要的,这也能让你知道如何到达目的地。在</p>