8

我想从名为 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

4 回答 4

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]]
于 2017-04-23T03:18:59.717 回答
0

这就是我使用列表理解的方式。

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 ]
于 2017-04-23T03:45:13.253 回答
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 的新手来说要容易得多。不是吗?

于 2017-04-23T04:30:22.923 回答
0

给定 cut=[0,9,8,2] 和 mom = [[0,8,1], [0, 6, 2, 7], [0, 11, 12, 3, 9], [0, 5、4、10]]

假设从切割列表中删除了 0 个元素

切=[9,8,2]

result =[] for e in mom:result.append(list(set(e)-set(cut)))

输出结果

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

于 2017-04-28T08:35:17.790 回答