क्या स्ट्रिंग्स की सूची से उन तारों को फ़िल्टर करने का कोई विकल्प है जिसमें उदाहरण के लिए 3 बराबर वर्ण हैं? मैंने एक तरीका बनाया जो ऐसा कर सकता है लेकिन मैं उत्सुक हूं कि क्या ऐसा करने के लिए एक और पाइथोनिक तरीका या अधिक कुशल या अधिक सरल तरीका है।फ़िल्टर स्ट्रिंग्स जहां पंक्ति में n बराबर वर्ण हैं
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)]
संपादित करें: मैं सिर्फ एक ही समाधान में पता चला है:
new_list = [x for x in set(keywords) if any(ch*3 in x for ch in x)]
लेकिन मुझे यकीन है जो तरीका है तेजी से नहीं कर रहा हूँ - regexp या इस।
संबंधित: [लगातार दोहराए गए वर्णों को खोजने के लिए पुनः उपयोग करें] (http://stackoverflow.com/questions/7147796/python-use-re-to-find-consecutively-repeated-chars) –