Să presupunem că am o listă a unor siruri de caractere, și există anumite siruri de acolo , care foarte, foarte asemănătoare. Și vreau să șterg acele aproape duplicate . Pentru asta, am venit cu următorul cod:
from difflib import SequenceMatcher
l = ['Apple', 'Appel', 'Aple', 'Mango']
c = [l[0]]
for i in l:
count = 0
for j in c:
if SequenceMatcher(None, i, j).ratio() < 0.7:
count += 1
if count == len(c):
c.append(i)
Ceea ce pare să funcționeze bine , dar eu nu place foarte mult bucle imbricate și , de asemenea , această count
soluție pare urât. Dar , probabil , este posibil să - l scrie în jos într - un mod mai pythonic? Folosind generatoare, ar putea fi?
Ar fi recunoscător pentru un indiciu, multumesc :)