如果子列表中的字符串包含子字符串(所有子列表中的所有值都是字符串),则删除子列表
removing a sublist if a string in the sublist contains a substring (all values within all sublists are strings)
给定嵌套列表:mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
所需输出:corrected_list = [['a','ds','dfg','mal']]
现在给定的列表可以包含数百或数千个子列表,其中的字符串可能包含也可能不包含特殊字符 *
,但如果包含,则必须删除整个子列表。
我在上面展示了一个示例,其中 mistake_list
是输入嵌套列表,corrected_list
是输出嵌套列表。
注意:所有子列表都有相同数量的元素(不过我认为没有必要知道这一点)
您可以使用列表理解:
mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
corrected_list = [sublst for sublst in mistake_list if not any('*' in s for s in sublst)]
print(corrected_list) # [['a', 'ds', 'dfg', 'mal']]
这里的过滤条件是检查sublst
的每一项是否有'*'
个字符。
filter
函数可以帮助您:
mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
corrected_list = list(filter(lambda l: not any("*" in x for x in l), mistake_list))
print(corrected_list)
[['a', 'ds', 'dfg', 'mal']]
给定嵌套列表:mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
所需输出:corrected_list = [['a','ds','dfg','mal']]
现在给定的列表可以包含数百或数千个子列表,其中的字符串可能包含也可能不包含特殊字符 *
,但如果包含,则必须删除整个子列表。
我在上面展示了一个示例,其中 mistake_list
是输入嵌套列表,corrected_list
是输出嵌套列表。
注意:所有子列表都有相同数量的元素(不过我认为没有必要知道这一点)
您可以使用列表理解:
mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
corrected_list = [sublst for sublst in mistake_list if not any('*' in s for s in sublst)]
print(corrected_list) # [['a', 'ds', 'dfg', 'mal']]
这里的过滤条件是检查sublst
的每一项是否有'*'
个字符。
filter
函数可以帮助您:
mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']]
corrected_list = list(filter(lambda l: not any("*" in x for x in l), mistake_list))
print(corrected_list)
[['a', 'ds', 'dfg', 'mal']]