5 连续去重

  类似 C++ 中的std::unique,python 中也有类似的连续去重方法。连续去重对于已排序的列表而言,就是完全去重。
  其实并不是方法,而是一个类。这个类是itertool库中的groupby,它的构造函数接受一个可迭代对象,经典例子比如:

from itertools import groupby
lst = [1, 2, 3, 2, 2, 1]
deduped_lst = [key for key, _ in groupby(lst)]
print(deduped_lst) # [1, 2, 3, 2, 1]
  当然,groupy的构造函数还接受一个key参数,用于构造自定义的比较方法。经典例子比如:
data = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 25},
    {'name': 'Charlie', 'age': 30}
]
grouped = groupby(data, key=lambda x: x['age'])

for key, group in grouped:
    print(f'Key: {key}, Group: {list(group)}')
输出是:
Key: 25, Group: [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 25}]
Key: 30, Group: [{'name': 'Charlie', 'age': 30}]