DEV Community

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

Posted on • Edited on

Set & Frozenset functions in Python (4)

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 (5).
  • 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).

difference() can return the zero or more elements which the set or frozenset has but *others don't have as shown below:

*Memo:

  • The 1st arguments are *others(Optional-Default:()-Type:Iterable):
    • Don't use any keywords like *others=, others=, etc.
  • difference() creates a copy.
  • - can do difference(), creating a copy and supporting set and frozenset.

<Set>:

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

print(A.difference(B))    # {40, 20}
print(A.difference(C))    # {20, 10}
print(A.difference(B, C)) # {20}
print(A.difference())     # {40, 10, 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

print(A - B)     # {40, 20}
print(A - C)     # {10, 20}
print(A - B - C) # {20}
print(A)         # {40, 10, 20, 30}
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.difference(B))    # frozenset({40, 20})
print(A.difference(C))    # frozenset({20, 10})
print(A.difference(B, C)) # frozenset({20})
print(A.difference())     # frozenset({40, 10, 20, 30})
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, 20})
print(A - C)     # frozenset({10, 20})
print(A - B - C) # frozenset({20})
print(A)         # frozenset({40, 10, 20, 30})
Enter fullscreen mode Exit fullscreen mode

difference_update() can return the zero or more elements which the set has but *others don't have as shown below:

*Memo:

  • The 1st arguments are *others(Optional-Default:()-Type:Iterable):
    • Don't use any keywords like *others=, others=, etc.
  • difference_update() doesn't create a copy.
  • difference_update() doesn't exist for a frozenset.
  • -= with or without | can do difference_update(), creating a copy and supporting set and frozenset.

<Set>:

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

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

A.difference_update(C)
print(A)
# {20}

A.difference_update(B, C)
print(A)
# {20}

A.difference_update()
print(A)
# {20}
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)
# {20, 40}

A -= C
print(A)
# {20}

A -= B | C
print(A)
# {20}
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, 20})

A -= C
print(A)
# frozenset({20})

A -= B | C
print(A)
# frozenset({20})
Enter fullscreen mode Exit fullscreen mode

Top comments (0)