我需要构建一个函数,该函数接受一个列表,并删除所有不符合我指定的所有条件的项。
结构如下:
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