元组的python元组,如果一个子元组与另一个具有相同的第一个子元素,则保留一个(与哪个无关)并删除其余的

joh*_*ohn 0 python tuples

我有以下格式元组:

((624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 617), (630, 618), (630, 619), (630, 620), (630, 621), (630, 622), (630, 623), (630, 624), (630, 625), (630, 626), (630, 627), (630, 628), (630, 629), (630, 630), (630, 631))
Run Code Online (Sandbox Code Playgroud)

我最后需要有一个元组,其中每个子元组的第一个元素都是唯一的,即:

((624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 617))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在进行详尽的搜索,但这效率极低。

列表按第一个元素排序,我不关心操作后列表的顺序谢谢您的时间。

nic*_*las 5

您可以使用dict.items()来保持最后一个实例集:

data = ((624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 617), (630, 618), (630, 619), (630, 620), (630, 621), (630, 622), (630, 623), (630, 624), (630, 625), (630, 626), (630, 627), (630, 628), (630, 629), (630, 630), (630, 631))

>>> tuple(sorted(dict(data).items()))
((624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 631))
Run Code Online (Sandbox Code Playgroud)