我有一个包含多个列表的大列表,需要根据特定条件删除重复元素:
- 唯一性是由列表的第一个元素决定的。
- 删除重复项是通过比较重复列表的第二个元素的值来确定的,即保留第二个元素最小的列表。
[[1, 4, 5], [1, 3, 4], [1, 2, 3]]
由于它们的第一个元素相等,上述所有列表都被视为重复。需要保留第三个列表,因为它的第二个元素是最小的。请注意,实际的列表包含超过400万个元素,已经进行了双重排序,需要保留顺序。
该列表首先基于内部列表的第二个元素进行排序,并以相反(降序)顺序排序,然后按照第一个元素的正常(升序)顺序排序:
sorted(sorted(the_list, key=itemgetter(1), reverse=True), key=itemgetter(0))
以下是三个重复列表的实际排序示例:
[...
[33554432, 50331647, 1695008306],
[33554432, 34603007, 1904606324],
[33554432, 33554687, 2208089473],
...]
目标是为二分搜索准备列表。有人能够提供使用Python实现这个目标的见解吗?