问题描述
vals = [[2,2,2],[2,3],3,4]]
targets = [2]
def remove_vals(vals,targets):
lst = []
for lst_ in vals:
for x in lst_:
if x not in targets:
lst.append(x)
return lst
解决方法
列表理解在这里会更简单。在这种情况下,您将需要一个嵌套列表理解来保留输入列表的嵌套结构:
[[i for i in l if i not in targets] for l in vals]
# [[],[3],[3,4]]
如果要使用常规的for循环,可以执行以下操作:
lst = []
for lst_ in vals:
new_l = []
for x in lst_:
if x not in targets:
new_l.append(x)
lst.append(new_l)