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)]