【发布时间】:2018-06-13 02:42:00
【问题描述】:
我有一个按升序排列的列表,类似于这个:
input = [[1,1],[1,2],[1,3],[1,4],[2,1],[2,2],[2,3],[3,1],[6,1],[6,2]]
我想过滤这个列表,以便新列表只包含前两个(或唯一)在位置 0 处具有匹配整数的元素,如下所示:
output = [[1,1],[1,2],[2,1],[2,2],[3,1],[6,1],[6,2]]
如果剩余元素(不符合条件的元素)将保留在输入列表中,而匹配的元素将单独存储,那将是理想的。
我该怎么做?
提前谢谢你!
编辑:索引 1 上的元素几乎可以是任何整数,例如[[1,6],[1,7],[1,8],[2,1],[2,2]]
【问题讨论】:
-
@WillemVanOnsem 啊,好吧。
-
OP,你做了什么?这可以使用
itertools.groupby在一行中完成。 -
@cᴏʟᴅsᴘᴇᴇᴅ 正确,如果它们重复多次,它们仍保留在输入列表中,在这种情况下,过滤后为
[[1,3],[1,4],[2,3]]。我说得通吗?
标签: python python-3.x list filter iteration