DEV Community

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

Posted on

Set & Frozenset functions in Python (5)

Buy Me a Coffee

*Memo:

  • My post explains set and frozenset functions (1).
  • My post explains set and frozenset functions (2).
  • My post explains set and frozenset functions (3).
  • My post explains set and frozenset functions (4).
  • My post explains set and frozenset functions (6).
  • My post explains set and frozenset functions (7).
  • My post explains a set (1).
  • My post explains a frozenset (1).

symmetric_difference() can return the zero or more elements which the set or frozenset has but other doesn't have or which the set or frozenset doesn't have but other has as shown below:

*Memo:

  • The 1st argument is other(Required-Type:Iterable):
    • Don't use other=.
  • symmetric_difference() creates a copy.
  • ^ can do symmetric_difference(), creating a new set or frozenset and supporting set and frozenset.

<Set>:

A = {10, 20, 30, 40}        # set
B = frozenset([10, 30, 50]) # frozenset
C = [30, 40]                # list

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

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

<Frozenset>:

A = frozenset([10, 20, 30, 40]) # frozenset
B = {10, 30, 50}                # set
C = [30, 40]                    # list

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

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

symmetric_difference_update() can return the zero or more elements which the set has but other doesn't have or which the set doesn't have but other has as shown below:

*Memo:

  • The 1st argument is other(Required-Type:Iterable):
    • Don't use other=.
  • symmetric_difference_update() doesn't create a copy.
  • symmetric_difference_update() doesn't exist for a frozenset.
  • ^= can do symmetric_difference_update(), creating a new set or frozenset and supporting set and frozenset.

<Set>:

A = {10, 20, 30, 40}        # set
B = frozenset([10, 30, 50]) # frozenset
C = [30, 40]                # list

A.symmetric_difference_update(B)
print(A)
# {40, 50, 20}

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

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

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

<Frozenset>:

A = frozenset([10, 20, 30, 40]) # frozenset
B = {10, 30, 50}                # set
C = {30, 40}                    # set

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

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

Top comments (0)