【发布时间】:2015-08-06 22:07:36
【问题描述】:
是否有一个选项如何从字符串列表中过滤这些字符串,例如在一行中包含 3 个相等的字符?我创建了一个可以做到这一点的方法,但我很好奇是否有更 Python 的方式或更有效或更简单的方式来做到这一点。
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)]
但我不确定哪种方式更快 - 正则表达式还是这个。
【问题讨论】:
标签: python string list filter char