Python 中元组的去重
在本文中,我们将学习一个 Python 程序,用于从元组中查找唯一元素。
使用的方法
以下是完成此任务的各种方法:
使用 for 循环和 append() 函数
使用 collections.Counter() 函数
使用 set() 函数
元组是 Python 中用于存储集合的一种不可变、无序的数据类型。它可以存储多个值。列表和元组在许多方面相似,但列表的长度可变且是可变的,而元组的长度固定且是不可变的。
方法 1:使用 for 循环和 append() 函数
算法(步骤)
以下是执行所需任务的算法/步骤:
创建一个函数(uniqueElements),该函数返回传递给它的元组中的唯一元素。
创建一个新的空列表,用于存储元组的最终唯一元素。
使用for 循环遍历元组中的每个元素。
使用if 条件语句以及 not in 运算符来检查相应的元组元素是否不存在于上面定义的新列表中。
如果条件为真,则使用append() 函数(将元素添加到列表的末尾)将元素追加到新列表中。
使用tuple()函数将列表转换为元组。
返回结果元组。
创建一个变量来存储输入元组。
通过向其传递输入元组来调用上面定义的uniqueElements函数,并打印结果元组。
示例
以下程序使用 for 循环和 append() 函数返回输入元组中的唯一元素:
# function that returns the unique elements in a tuple passed to it def uniqueElements(inputTuple): # creating a new list for storing unique elements newList = [] # traversing through each element in a tuple for k in inputTuple: # appending that corresponding tuple element to the new list # if it is not present in it(i.e, storing all unique elements) if k not in newList: newList.append(k) # converting the list into a tuple resultTuple = tuple(newList) # returning the resultant tuple return resultTuple # input tuple inputTuple = (5, 1, 8, 7, 7, 3, 3, 6, 1, 6) # Printing input tuple print("The given Tuple is:", inputTuple) #calling the above-defined uniqueElements function by passing input tuple to it print("The Unique elements of the tuple are:", uniqueElements(inputTuple))
输出
执行上述程序后,将生成以下输出:
The given Tuple is: (5, 1, 8, 7, 7, 3, 3, 6, 1, 6) The Unique elements of the tuple are: (5, 1, 8, 7, 3, 6)
方法 2:使用 collections.Counter() 函数
Counter() 函数(一个子类,用于计算可哈希对象。在调用/调用时隐式地创建可迭代对象的哈希表)
算法(步骤)
以下是执行所需任务的算法/步骤:
使用 import 关键字从 collections 模块导入Counter函数。
创建一个函数(uniqueElements),该函数返回传递给它的元组中的唯一元素。
将给定的元组作为参数传递给Counter()函数,该函数将所有唯一的元组元素及其频率存储为字典。
使用keys() 和 tuple() 函数将上述频率字典的键(唯一的元组元素)作为元组返回。
示例
以下程序使用 collections 模块的 Counter 函数返回输入元组中的唯一元素:
# importing Counter from the collections module from collections import Counter # function that returns the unique elements in a tuple passed to it def uniqueElements(inputTuple): #Getting all the unique tuple elements along with their frequencies frequency = Counter(inputTuple) # Returning all the unique tuple elements using the keys() function return tuple(frequency.keys()) # input tuple inputTuple = (5, 1, 8, 7, 7, 3, 3, 6, 1, 6) # Printing input tuple print("The given Tuple is:", inputTuple) #calling the above-defined uniqueElements function by passing input tuple to it print("The Unique elements of the tuple are:", uniqueElements(inputTuple))
输出
执行上述程序后,将生成以下输出:
The given Tuple is: (5, 1, 8, 7, 7, 3, 3, 6, 1, 6) The Unique elements of the tuple are: (5, 1, 8, 7, 3, 6)
方法 3:使用 set() 函数
set() 函数 - 创建一个集合对象。集合列表将以随机顺序出现,因为项目是无序的。它会删除所有重复项)
算法(步骤)
以下是执行所需任务的算法/步骤:
创建一个函数(uniqueElements),该函数返回传递给它的元组中的唯一元素。
使用 set() 函数返回元组中的所有唯一元素,并使用tuple()函数(创建一个元组)将其转换为元组。
示例
以下程序使用 set() 函数返回输入元组中的唯一元素:
# function that returns the unique elements in a tuple passed to it def uniqueElements(inputTuple): # Getting all the unique elements of the tuple using the set() function resultUnique = set(inputTuple) # returning unique elements as a tuple using the tuple() function return tuple(resultUnique) # input tuple inputTuple = (5, 1, 8, 'tutorialspoint', 7, 7, 'tutorialspoint', 3, 3, 6, 1, 6) # Printing input tuple print("The given Tuple is:", inputTuple) #calling the above-defined uniqueElements function by passing input tuple to it print("The Unique elements of the tuple are:", uniqueElements(inputTuple))
输出
执行上述程序后,将生成以下输出:
The given Tuple is: (5, 1, 8, 'tutorialspoint', 7, 7, 'tutorialspoint', 3, 3, 6, 1, 6) The Unique elements of the tuple are: (1, 3, 5, 6, 7, 8, 'tutorialspoint')
结论
在本文中,我们介绍了如何通过三种方法查找元组的唯一元素。我们还学习了如何使用 Counter() 函数不仅查找频率,还查找任何可迭代对象(例如列表、元组等)中的唯一元素。Counter() 方法是这三种方法中最有效的,因为它使用字典来存储频率。