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
结论
在本文中,我们简要讨论了用于检查两个集合是否相等的四种不同方法。