Ας πούμε ότι έχετε μια λίστα με μερικές χορδές, και υπάρχουν ορισμένες χορδές εκεί που είναι πολύ, πολύ παρόμοια. Και θέλω να διαγράψετε αυτά τα σχεδόν εις διπλούν . Γι 'αυτό, ήρθα με τον ακόλουθο κώδικα:
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)
Ποια φαίνεται να δουλεύουν μια χαρά, αλλά εγώ δεν αρέσει ένθετων βρόχων, αλλά και αυτή η count
λύση φαίνεται άσχημο. Αλλά ίσως είναι δυνατό να το γράψετε σε ένα πιο Pythonic τρόπο; Χρησιμοποιώντας γεννήτριες, μπορεί να είναι;
Θα ήμουν ευγνώμων για μια υπόδειξη, χάρη :)