如何删除 python 中第二个列表中的列表项?
How to remove the items in a list that are in a second list in python?
我有一个列表列表和另一个列表,我想从第二个列表中的列表列表中删除所有项目。
first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]
一般情况下,我将如何着手解决这个问题?
这里也有类似的问题,但没有任何帮助。
result = []
for l in first:
tmp = []
for e in l:
if e not in to_remove:
tmp.append(e)
result.append(tmp)
print(result)
此代码遍历所有列表和每个列表的所有元素,如果元素在 to_remove 列表中,则跳过它并转到下一个。
所以如果你有多个实例,它会删除它
此致
使用sets
的优雅解决方案:
first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]
result = [list(set(x).difference(to_remove)) for x in first]
result
[[3, 4], [], [3, 4, 5]]
我有一个列表列表和另一个列表,我想从第二个列表中的列表列表中删除所有项目。
first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]
一般情况下,我将如何着手解决这个问题?
这里也有类似的问题,但没有任何帮助。
result = []
for l in first:
tmp = []
for e in l:
if e not in to_remove:
tmp.append(e)
result.append(tmp)
print(result)
此代码遍历所有列表和每个列表的所有元素,如果元素在 to_remove 列表中,则跳过它并转到下一个。 所以如果你有多个实例,它会删除它
此致
使用sets
的优雅解决方案:
first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]
result = [list(set(x).difference(to_remove)) for x in first]
result
[[3, 4], [], [3, 4, 5]]