Python程序检查两个集合是否相等


Python是一种解释型、面向对象、高级编程语言,具有动态语义。由Guido Van Rossum于1991年开发。它支持多种编程范式,包括结构化、面向对象和函数式编程。

什么是集合?

集合是一种无序的集合数据类型,它是可迭代的、可变的,并且没有重复元素。集合用{}表示。集合是检查特定元素是否存在于集合中的高度优化的方式。

集合是通过将所有项目或元素放在花括号{}内,用逗号分隔,或者使用内置的“set()”函数来创建的。

它可以包含各种数量的项目,这些项目可以是不同的类型,例如整数、浮点数、元组、字符串等。

例如 -

集合是可变的,这意味着我们可以向其中添加、删除和重复元素。它允许像字符串一样进行索引和切片,可以使用不同的运算符从列表中删除元素。

name={"ahana","jacob","yana","ankush","umang"}

混合集合 −

name= {1,"ahana",2, "jacob",3,"yana",4,"ankush",5,"umang"}

如何检查两个集合是否相等

这里,我们给出了两个数字列表,我们必须使用不同的方法来检查这些列表是否相等。有四种方法可以从列表中删除子集。

  • 使用“==”运算符

  • 使用“all()”

  • 使用“issubset()”

  • 使用“symmetric_difference()”

要检查两个集合是否相等,可以在Python中使用几种方法。

  • 第一种方法是使用“==”运算符。 这将确定两个集合是否具有相同的元素和元素顺序。如果是,则它们相等;否则,它们不相等。

  • 另一种检查集合相等性的方法是使用all()函数。这将比较一个集合中的每个元素与其在另一个集合中的对应元素,并且只有当所有元素完全匹配时才返回True。

  • 检查两个集合是否相等的第三种方法是使用issubset()。此函数仅当一个集合是另一个集合的子集时返回True,即它包含另一个集合的所有元素。

  • 最后,您可以使用symmetric_difference()函数来确定两个集合是否相等。如果两个集合相等,则此函数将返回一个空集合;否则,它将返回一个非空集合,其中包含出现在一个集合中但没有出现在两个集合中的元素。

使用“==”运算符

“==”运算符用于比较两个对象的的值或相等性。它们也称为“关系运算符”。如果两个操作数的值相等,则条件变为真(a==b)。如果两个操作数的值不相等,则条件变为假(a不等于b)。

示例

在下面的示例中,我们使用==运算符来比较两个对象的值或相等性,并比较name==rollno

name= {1,2,3,4,5}
rollno= {1,2,3,4,5}
print(name==rollno)

输出

执行上述程序后,我们将得到如下所示的输出,我们比较了name==rollno,它们的输出结果为真,因为它们具有相同的元素集。

True

示例

下面给出的示例使用“==运算符”来比较两个对象的值或相等性。

name={"karan","kunnal","aditi","janshna"}
rollno={1,2,3,4,5}
print(name==rollno)

输出

执行上述程序后,我们看到输出如下,它返回false,因为它没有相同的元素集。

False

使用all()

all()函数如果可迭代对象中的所有项目都为真,则返回True,否则返回false。如果可迭代对象为空,all()函数也返回true。

示例

在下面的示例中,我们在程序中使用all()函数来检查两个集合是否相等。此程序检查集合num1的所有元素是否相等。如果是,则打印“所有元素相等”,否则打印“所有元素不相等”。

num1={1,2,3,4,5}
result=all(element==num1 for element in num1)
if (result):
   print("all the elements are equal are equal")
else:
   print("all the elements are not equal")

输出

执行上述程序后,我们看到以下示例显示在Web浏览器上。

all the elements are not equal

示例

以下示例检查集合的所有元素是否彼此相等。Checkset: num1={1,1,1}。创建一个结果变量,并根据num1的所有元素是否彼此相等来分配布尔值。如果是,则结果为True,并打印“所有元素相等”。否则,结果为False,打印“所有元素不相等”。

num1={1,1,1}
result=all(element==num1 for element in num1)
if (result):
   print("all the elements are equal are equal")
else:
   print("all the elements are not equal")

输出

all the elements are equal

使用Issubset()

issubset()方法接受一个参数(b-a)作为“a”的超集,这意味着“b”具有“a”的所有子集。如果两个操作数的值相等,则条件变为真(a==b)。如果两个操作数的值不相等,则条件变为假(a ≠ b)。

示例

下面的示例使用issubset()方法来了解两个集合是否相等。

a={1,2,3}
b={1,2,3,4,5}
print(a.issubset(b))

输出

执行上述程序后,我们将看到如下输出 -

True

示例

a={1,2,3}
b={1,2,3,4,5}
print(b.issubset(a))

输出

执行后,上述程序返回false,因为集合“b”不是“a”的子集。

False

这里,我们有两个程序,在这两个程序中,我们都使用了issubset()方法来检查“a”和“b”是否是彼此的子集。由于“a”的所有元素都存在于“b”中。所以,输出结果为真。另一方面,集合“b”不是“a”的子集。因此,我们用issubset(a)得到false。

使用symmetric_difference()

函数symmetric_difference() 返回两个集合之间的差集。Python中两个集合之间的差等于两个集合中元素数量之间的差。symmetric_difference将返回一个包含零个元素的集合。然后我们可以检查两个集合的长度是否相等。

示例

此示例测试两个集合num1和num2是否相等。使用symmetric_difference方法查找两个集合之间的差。

如果此差值为零,则打印“两个集合相同”,这表示两者都包含相同的元素。否则,它将打印“集合不相等”。

num1={1,2,3}
num2={1,2,3,4,5}
if len(num1.symmetric_difference(num2))== 0:
   print("both sets are equal")
else:
   print("sets are not equal")

输出

sets are not equal

示例

在下面的示例中使用symmetric_difference方法来查找两个集合之间的差,这里,差值不为零。因此,它返回false。

num1={1,2,3,4,5}
num2={1,2,3,4,5}
if len(num1.symmetric_difference(num2))== 0:
   print("both sets are equal")
else:
   print("sets are not equal")

输出

执行上述程序后,我们将得到以下输出,因为两个集合之间的差值不为零,这意味着它们不相等。

both sets are equal

结论

在本文中,我们简要讨论了用于检查两个集合是否相等的四种不同方法。

更新于: 2023年4月24日

8K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告