Esiste un'opzione su come filtrare tali stringhe dall'elenco di stringhe che contiene ad esempio 3 caratteri uguali in una riga? Ho creato un metodo che può farlo, ma sono curioso di sapere se esiste un modo più platonico o più efficiente o più semplice per farlo.Stringhe di filtro in cui sono presenti n caratteri uguali in una riga
list_of_strings = []
def check_3_in_row(string):
for ch in set(string):
if ch*3 in string:
return True
return False
new_list = [x for x in list_of_strings if check_3_in_row(x)]
EDIT: Ho appena scoperto una soluzione:
new_list = [x for x in set(keywords) if any(ch*3 in x for ch in x)]
Ma io non sono sicuro di quale modo è più veloce - regexp o del presente.
Correlato: [utilizzare re per trovare caratteri ripetuti consecutivamente] (http://stackoverflow.com/questions/7147796/python-use-re-to-find-consecutively-repeated-chars) –