Powiedzmy mam listę niektórych ciągów i istnieją pewne ciągi tam, że bardzo, bardzo podobne. I chcę, aby usunąć te prawie duplikatów . Za to, wpadłem na następujący kod:
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)
Który wydaje się działać dobrze, ale ja nie lubię zagnieżdżonych pętli, a także to count
rozwiązanie wygląda brzydko. Ale prawdopodobnie jest to możliwe, aby go zapisać w sposób bardziej pythonic sposób? Korzystanie z generatorów, może być?
Byłbym wdzięczny za podpowiedź, dzięki :)