我有三个列表:
del_ids = [2, 4]
ids = [3, 2, 4, 1]
other = ['a', 'b', 'c', 'd']
我的目标是删除del_ids
,结果应为:
ids = [3, 1]
other = ['a', 'd']
我尝试着创建一个元素的掩码以保留它们 (mask = [id not in del_ids for id in ids]
),并且计划将这个掩码应用到两个列表上。
但我感觉这不是一种很Pythonic的解决方案。请问您能告诉我如何更好地实现吗?
zip()
函数。zip()
看到zip(pair1, pair2, pair3, etc.)
,然后将所有这些对压缩成两个列表。 - Martijn Pieters(.. for .. in ..)
结构是一个生成器表达式。它很像列表推导式 ([.. for .. in ..]
),但它不会首先在内存中构建一个新的列表。 - Martijn PietersOrderedDict
),也许允许重复(那么使用元组序列)等等。 - Martijn Pieters