我需要对列表中的每个元素应用一些regex替换。我写了一个函数来减少重复。不管怎样,还是有太多的重复。我如何优化它?你知道吗
def cleanlist(mylist, regex, substitution):
tmp_list = mylist
cleaned_list = [re.sub(regex, substitution, line) for line in tmp_list]
return cleaned_list
create_table_parts = cleanlist(create_table_parts, "(SET).+?(\n)", "\n")
create_table_parts = cleanlist(create_table_parts, "(__|\(__).*?\n|(^\)|(?<=\n)(\n))", "")
create_table_parts = cleanlist(create_table_parts, "\"", "")
create_table_parts = cleanlist(create_table_parts, "(?<=CREATE\sTABLE\s).+?(\.)", "")
create_table_parts = cleanlist(create_table_parts, "(PRIMARY\sKEY\s).+?(\n)|(FOREIGN\sKEY\s).+?(\n)|", "")
create_table_parts = cleanlist(create_table_parts, "(CREATE_INDEX\s).+?(\n)", "")
将您的模式放入列表并循环:
您甚至可以使用
reduce()
而不是for
循环:但这是一个私人电话,无论是否更具可读性。你知道吗
相关问题 更多 >
编程相关推荐