用于查找最常见元素集的 Python 程序
在 Python 中,集合是唯一元素的无序集合,用 {} 表示。它允许进行有效的成员测试并消除重复值,使其可用于诸如删除重复项或检查集合之间的共同元素等任务。
在本文中,我们将学习一个用于查找最常见元素集的 Python 程序。
使用的方法
以下是完成此任务的各种方法:
使用 for 循环和 set.intersection() 函数
使用列表推导、max() 和 Intersection() 函数
演示
假设我们已经获取了一个包含集合的 输入列表。现在我们将使用上述方法获取最常见的元素。
输入
inputList = [{9, 1, 3, 2}, {4, 5, 8, 1}, {1, 4, 7, 8}, {9, 5, 5, 4}] argumentSet = {5, 4, 9, 1}
输出
输入列表:[{9, 2, 3, 1}, {8, 1, 4, 5}, {8, 1, 4, 7}, {9, 4, 5}] 输入集合中最常见的元素是:{8, 1, 4, 5}
这里集合{8,1,4,5} 包含最常见的元素,即给定参数集 {5,4,9,1} 中的 (4,5,1)。
算法(步骤)
以下是执行所需任务所要遵循的算法/步骤 –。
创建一个变量来存储输入集合列表。
打印输入列表。
创建另一个变量来存储输入参数集。
使用set()函数创建一个空集(创建一个集合对象。集合列表将以随机顺序出现,因为项目没有排序。它会删除所有重复项)用于存储结果集。
将最大长度初始化为 0。
使用for 循环遍历输入集合列表的每个元素。
使用if 条件语句检查公共元素的数量是否大于最大长度变量。
如果为真,则用这些公共元素数分配最大长度。
将当前集合分配为结果。
打印包含输入集合列表中最常见元素的结果集。
示例 1:使用 for 循环和 set.intersection() 函数
在此示例中,我们将使用 for 循环和 set.intersection() 函数查找给定集合中最常见的元素。
set.intersection() 函数:intersection() 方法返回包含两个或多个集合之间相似性的集合。
这意味着只有存在于两个集合中的项目,或者如果比较两个以上的集合,则存在于所有集合中的项目才会包含在返回的集合中。
len() 函数:对象中的项目数由len() 方法。当对象是字符串时,len() 函数返回字符串中的字符数。
示例
以下程序使用 for 循环和 set.intersection() 函数返回包含输入集中最常见元素的集合
# 输入集合列表 inputList = [{9, 1, 3, 2}, {4, 5, 8, 1}, {1, 4, 7, 8}, {9, 5, 5, 4}] # 打印输入列表 print("输入列表:", inputList) # 输入参数集 argumentSet = {5, 4, 9, 1} # 创建一个空集用于存储结果集 resultantSet = set() # 将最大长度初始化为 0 maxLength = 0 # 遍历输入列表 for i in inputList: # 检查公共元素是否大于最大长度变量 if len(i.intersection(argumentSet)) > maxLength: # 如果上述条件为真,则将这些公共元素添加到最大长度 maxLength = len(i.intersection(argumentSet)) # 将当前元素分配给结果集 resultantSet = i # 打印结果集 print("输入集中最常见的元素是:", resultantSet)
输出
执行时,上述程序将生成以下输出
输入列表:[{9, 2, 3, 1}, {8, 1, 4, 5}, {8, 1, 4, 7}, {9, 4, 5}] 输入集中最常见的元素是:{8, 1, 4, 5}
示例 2:使用列表推导、max() 和 Intersection() 函数
在此方法中,我们将学习如何使用列表推导、max() 和 Intersection() 函数的简单组合来查找最常见的元素集。
列表推导式
当您希望根据现有列表的值构建新列表时,列表推导式提供了更短/简洁的语法。
max() 函数
max() 方法返回可迭代对象中值最高的项/最大数字。以下程序使用列表推导式、max() 和 Intersection() 函数返回包含输入集合中最常见元素的集合
# 输入集合列表 inputList = [{9, 1, 3, 2}, {4, 5, 8, 1}, {1, 4, 7, 8}, {9, 5, 5, 4}] # 打印输入列表 print("输入列表:", inputList) # 输入参数集 argumentSet = {5, 4, 9, 1} # 从给定的集合列表中获取最多公共元素 maxLength = max(len(i.intersection(argumentSet)) for i in inputList) # 获取具有上述公共元素数量的集合 resultantSet = [i for i in inputList if len(i.intersection(argumentSet)) == maxLength][0] # 打印结果集 print("输入集合中最常见的元素是:", resultantSet)
输出
执行时,上述程序将生成以下输出 –
输入列表:[{9, 2, 3, 1}, {8, 1, 4, 5}, {8, 1, 4, 7}, {9, 4, 5}] 输入集合中最常见的元素是:{8, 1, 4, 5}
结论
在本文中,我们学习了两种不同的方法,从给定的集合列表中查找最常见的元素集。此外,我们还学习了如何使用交集函数从给定的两个集合中提取共同元素。