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() 方法是这三种方法中最有效的,因为它使用字典来存储频率。

更新于:2023年1月24日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告