📜  Python|根据键删除连续元组

📅  最后修改于: 2022-05-13 01:55:14.933000             🧑  作者: Mango

Python|根据键删除连续元组

有时,在使用Python列表时,我们可能会遇到一个问题,即我们可以拥有一个元组列表,我们希望根据元组的第一个元素删除它们以避免它的连续重复。让我们讨论一下可以解决这个问题的某种方法。

方法:使用groupby() + itemgetter() + next()
可以使用这些功能的组合来执行此任务。在这种情况下,我们使用next()将列表转换为迭代器以便更快地访问, itemgetter()用于获取我们需要执行删除的元组的索引(在这种情况下首先)和groupby()执行最终分组的元素。

# Python3 code to demonstrate working of
# Remove Consecutive tuple according to key
# using itemgetter() + next() + groupby()
from operator import itemgetter
from itertools import groupby
  
# initialize list
test_list = [(4, 5), (4, 6), (7, 8), (7, 1), (7, 0), (8, 1)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Remove Consecutive tuple according to key
# using itemgetter() + next() + groupby()
res = [next(group) for key, group in groupby(test_list, key = itemgetter(0))]
  
# printing result
print("List after Consecutive tuple removal : " + str(res))
输出 :
The original list is : [(4, 5), (4, 6), (7, 8), (7, 1), (7, 0), (8, 1)]
List after Consecutive tuple removal : [(4, 5), (7, 8), (8, 1)]