【发布时间】:2021-07-28 16:22:33
【问题描述】:
假设我有一个 2D 列表(仅包含浮点数)-
a=[[1,2],[1,3],[2,5],[4,3],[3,4],[4,9]]
我想删除那些具有共同第一个元素并稍后出现的一维列表。例如 - 第一个列表 [1,2] 包含 1 作为第一个元素,因此删除具有第一个元素 1 的下一个列表,在这种情况下是第二个列表 [1,3],然后我们取 [2,5] ,[4,3],[3,4] 像往常一样,但由于我们已经采用了 [4,3],因此我们不会采用具有共同第一个元素 4 的 [4,9]。
所以最终的输出应该是-
[[1,2],[2,5],[4,3],[3,4]]
如何在 Python 中做到这一点?我可以想到一些嵌套的 for 循环和一堆 if else 语句,这显然是低效的,我希望 set/map/zip 函数有一个技巧,它更 Pythonic。
【问题讨论】:
-
您应该尝试编写一些代码并展示它。如果它效率低下也没关系,但你应该显示 something。一个简单的迭代和
seen=set()实际上应该可以正常工作。 -
我会在阅读您的评论后这样做,但你们回复的速度太快了! :-) 无论如何,我的代码在用户 KnowledgeGainer 的回答中。
标签: python arrays list python-2.7