【发布时间】:2020-10-23 11:06:24
【问题描述】:
我有一个列表列表,有相应的值:
lists = [[7, 4, 7, 5, 3],
[1, 3, 2],
[4, 5]]
vals = [7, 2, 5]
我想以一种有效的方式(运行时)从每个列表中删除vals 中的相应值,只删除一次。例如,第一个列表[7, 4, 7, 5, 3] 应该变成[4, 7, 5, 3](或[7, 4, 5, 3],排序不重要)。
预期输出:
[[4, 7, 5, 3], [1, 3], [4]]
我尝试过的:
[lst.remove(val) for lst, val in zip(lists, vals)]
list.remove(item) 删除了list 中item 的第一次出现,但由于它返回None,所以输出变为:
[None, None, None]
关于如何使用列表理解(或其他方法)来做到这一点的任何想法?
【问题讨论】:
标签: python python-3.x list list-comprehension