Python-删除项目

时间:2017-04-23 03:14:24

标签: python genetic

我想从名为mom的列表中删除项目。我有另一个名为cut

的列表
mom= [[0,8,1], [0, 6, 2, 7], [0, 11, 12, 3, 9], [0, 5, 4, 10]]
cut =[0, 9, 8, 2]

除了零以外,如何删除母亲的剪切内容?

我的愿望结果是

mom=[[0,1],[0,6,7],[0,11,12,3],[0,5,4,10]]

4 个答案:

答案 0 :(得分:9)

>>> [[e for e in l if e not in cut or e == 0] for l in mom]
[[0, 1], [0, 6, 7], [0, 11, 12, 3], [0, 5, 4, 10]]

答案 1 :(得分:0)

这就是我用List comprehension做的事情。

mom= [[0,8,1], [0, 6, 2, 7], [0, 11, 12, 3, 9], [0, 5, 4, 10]]
cut =[0, 9, 8, 2]
mom = [[x for x in subList if x not in cut or x == 0 ] for subList in mom ]

答案 2 :(得分:0)

Ingnacio和Dom提供的答案非常完美。同样可以以更清晰易懂的方式完成。请尝试以下方法:

妈妈= [[0,8,1],[0,6,2,7],[0,11,12,3,9],[0,5,4,10]]

cut =[0, 9, 8, 2]

for e in mom:



for f in e:


if f in cut and f != 0:


e.remove(f)  #used the remove() function of list

print(mom)

Python中的新手要容易得多。不是吗?

答案 3 :(得分:0)

鉴于cut = [0,9,8,2]和 妈妈= [[0,8,1],[0,6,2,7],[0,11,12,3,9],[0,5,4,10]]

假设从切割清单中删除了0个元素

切= [9,8,2]

result = [] 对于妈妈来说:      result.append(列表(组(E)-set(切断)))

O / P 结果

[[0,1],[0,6,7],[0,11,3,12],[0,10,4,5]]