Czy istnieje opcja filtrowania tych ciągów z listy ciągów zawierających na przykład 3 równe znaki z rzędu? Stworzyłem metodę, która może to zrobić, ale jestem ciekawy, czy jest tam bardziej pytonowo lub bardziej wydajnie lub prostszy sposób na zrobienie tego.Filtruj ciągi znaków, gdy n ma równe znaki z rzędu
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: Właśnie dowiedziałem się jedno rozwiązanie:
new_list = [x for x in set(keywords) if any(ch*3 in x for ch in x)]
Ale nie jestem pewien, w jaki sposób jest szybszy - regexp lub to.
Powiązane: [użyj ponownie, aby znaleźć kolejno powtarzające się znaki] (http://stackoverflow.com/questions/7147796/python-use-re-to-find-consecutively-repeated-chars) –