用于查找最常见元素集的 Python 程序

pythonserver side programmingprogramming更新于 2023/12/28 20:49:00

在 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}

结论

在本文中,我们学习了两种不同的方法,从给定的集合列表中查找最常见的元素集。此外,我们还学习了如何使用交集函数从给定的两个集合中提取共同元素。


相关文章