DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

Frozenset in Python (2)

Buy Me a Coffee

*Memo:

A non-empty frozenset and empty frozenset are:

  • True and False, checking them with bool() respectively.
  • False and True, inverting their truth values with not keyword respectively.
# Non-empty frozenset
print(bool(frozenset([0])))
print(bool(frozenset([frozenset()])))
# True

# Empty frozenset
print(bool(frozenset()))
# False
Enter fullscreen mode Exit fullscreen mode
# Non-empty frozenset
print(not frozenset([0]))
print(not frozenset([frozenset()]))
# False

# Empty frozenset
print(not frozenset())
# True
Enter fullscreen mode Exit fullscreen mode

A frozenset can be checked if a specific element is and isn't in the frozenset with in keyword and with not and in keyword respectively as shown below:

A = frozenset([10, frozenset([20, 30])])

print(10 in A)
print(frozenset([20, 30]) in A)
# True

print(20 in A)
print(30 in A)
print(frozenset([10]) in A)
print(frozenset([20]) in A)
print(frozenset([30]) in A)
print(frozenset([10, frozenset([20, 30])]) in A)
print(frozenset() in A)
# False
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, frozenset([20, 30])])

print(10 not in A)
print(frozenset([20, 30]) not in A)
# False

print(20 not in A)
print(30 not in A)
print(frozenset([10]) not in A)
print(frozenset([20]) not in A)
print(frozenset([30]) not in A)
print(frozenset([10, frozenset([20, 30])]) not in A)
print(frozenset() not in A)
# True
Enter fullscreen mode Exit fullscreen mode

A frozenset can be checked if the frozenset is and isn't referred to by two variables with is keyword and with is and not keyword respectively as shown below:

A = frozenset([10, 20, 30])
B = frozenset([10, 20, 30])
C = A

print(A is B) # False
print(A is C) # True

print(A is not B) # True
print(A is not C) # False
Enter fullscreen mode Exit fullscreen mode

A frozenset and other frozenset can be checked if all the elements in:

  • them are and aren't the same with == and != respectively.
  • the frozenset are in other frozenset with <=.
  • other frozenset are in the frozenset with >=.
  • the frozenset and other elements are in other frozenset with <.
  • other frozenset and other elements are in the frozenset with >.
A = frozenset([10, 20, 30])

print(A == frozenset([10, 20, 30]))     # True
print(A == frozenset([10, 20, 40]))     # False
print(A == frozenset([10, 20]))         # False
print(A == frozenset([10, 40]))         # False
print(A == frozenset([10, 20, 30, 40])) # False
print(A == frozenset([10, 20, 40, 50])) # False
print(A == frozenset())                 # False
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30])

print(A != frozenset([10, 20, 30]))     # False
print(A != frozenset([10, 20, 40]))     # True
print(A != frozenset([10, 20]))         # True
print(A != frozenset([10, 40]))         # True
print(A != frozenset([10, 20, 30, 40])) # True
print(A != frozenset([10, 20, 40, 50])) # True
print(A != frozenset())                 # True
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30])

print(A <= frozenset([10, 20, 30]))     # True
print(A <= frozenset([10, 20, 40]))     # False
print(A <= frozenset([10, 20]))         # False
print(A <= frozenset([10, 40]))         # False
print(A <= frozenset([10, 20, 30, 40])) # True
print(A <= frozenset([10, 20, 40, 50])) # False
print(A <= frozenset())                 # False
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30])

print(A >= frozenset([10, 20, 30]))     # True
print(A >= frozenset([10, 20, 40]))     # False
print(A >= frozenset([10, 20]))         # True
print(A >= frozenset([10, 40]))         # False
print(A >= frozenset([10, 20, 30, 40])) # False
print(A >= frozenset([10, 20, 40, 50])) # False
print(A >= frozenset())                 # True
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30])

print(A < frozenset([10, 20, 30]))     # False
print(A < frozenset([10, 20, 40]))     # False
print(A < frozenset([10, 20]))         # False
print(A < frozenset([10, 40]))         # False
print(A < frozenset([10, 20, 30, 40])) # True
print(A < frozenset([10, 20, 40, 50])) # False
print(A < frozenset())                 # False
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30])

print(A > frozenset([10, 20, 30]))     # False
print(A > frozenset([10, 20, 40]))     # False
print(A > frozenset([10, 20]))         # True
print(A > frozenset([10, 40]))         # False
print(A > frozenset([10, 20, 30, 40])) # False
print(A > frozenset([10, 20, 40, 50])) # False
print(A > frozenset())                 # True
Enter fullscreen mode Exit fullscreen mode

A frozenset and other frozenset can be checked if they have and don't have their common elements with bool() and & and with not keyword and & respectively as shown below:

A = frozenset([10, 20, 30])

print(bool(A & frozenset([20, 40]))) # True
print(bool(A & frozenset([40, 50]))) # False
print(bool(A & frozenset()))         # False

print(not (A & frozenset([20, 40]))) # False
print(not (A & frozenset([40, 50]))) # True
print(not (A & frozenset()))         # True
Enter fullscreen mode Exit fullscreen mode

A frozenset cannot be enlarged with * and a number as shown below:

A = frozenset([10, 20, 30, 40, 50]) * 3
# TypeError: unsupported operand type(s) for *: 'frozenset' and 'int'
Enter fullscreen mode Exit fullscreen mode

A frozenset and other frozensets cannot be concatenated with + as shown below:

A = frozenset([10, 20, 30]) + frozenset([30, 40]) + frozenset([50, 60, 70, 80])
# TypeError: unsupported operand type(s) for +: 'frozenset' and 'frozenset'
Enter fullscreen mode Exit fullscreen mode

A frozenset and other frozenset can return:

  • all the elements in them with '|' (Union: A ∪ B).
  • their common elements with '&' (Intersection: A ∩ B).
  • the elements in the frozenset which aren't in other frozenset with '-' (Difference: A - B).
  • the elements in either the frozenset or other frozenset but not both with '^' (Symmetric Difference: A Δ B).
A = frozenset([10, 50])
B = frozenset([10, 30, 50])
C = frozenset([10, 20, 40, 50])

print(A | B)
# frozenset({50, 10, 30})

print(A | C)
# frozenset({50, 20, 40, 10})

print(B | C)
# frozenset({50, 20, 40, 10, 30})

print(A | B | C)
# frozenset({50, 20, 40, 10, 30})
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30, 40])
B = frozenset([10, 30, 50])
C = frozenset([30, 40])

print(A & B)
# frozenset({10, 30})

print(A & C)
# frozenset({40, 30})

print(B & C)
# frozenset({30})

print(A & B & C)
# frozenset({30})
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30, 40])
B = frozenset([10, 30, 50])
C = frozenset([30, 40])

print(A - B)
# frozenset({40, 20})

print(A - C)
# frozenset({10, 20})

print(B - C)
# frozenset({10, 50})

print(A - B - C)
# frozenset({20})
Enter fullscreen mode Exit fullscreen mode
A = frozenset([10, 20, 30, 40])
B = frozenset([10, 30, 50])
C = frozenset([30, 40])

print(A ^ B)
# frozenset({40, 50, 20})

print(A ^ C)
# frozenset({10, 20})

print(B ^ C)
# frozenset({40, 10, 50})

print(A ^ B ^ C)
# frozenset({50, 20, 30})
Enter fullscreen mode Exit fullscreen mode

Top comments (0)