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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告