为每个未满足的条件从列表中删除多个项目



我需要构建一个函数,该函数接受一个列表,并删除所有不符合我指定的所有条件的项。

结构如下:

def function(my_list):
for element in my_list:
if not criteria_1:
my_list.remove(element)
else:
if not criteria_2:
my_list.remove(element)
return my_list
  • 问题是,我得到的列表中包含的元素与标准不匹配
  • 预期的输出是一个列表,其中只包含与所有条件匹配的元素
  • 你可以制作一个大的if——它更可读(我认为至少(
  • 您正在同时删除和迭代,这是不正确的-您需要创建临时列表

此代码应该可以工作:

def function(my_list):
tmp = list(my_list)

for element in my_list:
if not (criteria1 and criteria2 and criteria3):
tmp.remove(element)
return tmp

最新更新