DEV Community

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

Posted on

Set & Frozenset functions in Python (7)

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 (5).
  • My post explains set and frozenset functions (6).
  • My post explains a set (1).
  • My post explains a frozenset (1).

sorted() can convert a set or frozenset to a list, then sort the list, then the sorted list is converted to a set or frozenset with set() or frozenset() respectively as shown below:

*Memo:

  • The 1st argument is iterable(Required-Type:Iterable):
    • Don't use iterable=.
  • The 2nd argument is key(Optional-Default:None-Type:Callable or NoneType).
  • The 3rd argument is reverse(Optional-Default:False-Type:bool) to reverse the list.
  • sorted() creates a copy:
    • Be careful, sorted() does shallow copy instead of deep copy as my issue.

<Set>:

A = {3, 5, -2, 1, -4}

print(sorted(A))
print(sorted(A, key=None, reverse=False))
# [-4, -2, 1, 3, 5]

print(set(sorted(A)))
# {1, 3, 5, -4, -2}

print(set(sorted(A, reverse=True)))
# {1, 3, 5, -4, -2}

print(set(sorted(A, key=abs)))
# {1, 3, 5, -4, -2}

print(set(sorted(A, key=abs, reverse=True)))
# {1, 3, 5, -4, -2}
Enter fullscreen mode Exit fullscreen mode
A = {"apple", "Banana", "Kiwi", "cherry"}

""" Case sensitive sort """
print(set(sorted(A)))
# {'Banana', 'Kiwi', 'cherry', 'apple'}

""" Case insensitive sort """
print(set(sorted(A, key=str.upper)))
print(set(sorted(A, key=str.lower)))
# {'Banana', 'Kiwi', 'cherry', 'apple'}

""" Sort by the length of a word """
print(set(sorted(A, key=len)))
# {'Banana', 'Kiwi', 'cherry', 'apple'}
Enter fullscreen mode Exit fullscreen mode

<Frozenset>:

A = frozenset([3, 5, -2, 1, -4])

print(sorted(A))
print(sorted(A, key=None, reverse=False))
# [-4, -2, 1, 3, 5]

print(frozenset(sorted(A)))
# frozenset({1, 3, 5, -4, -2})

print(frozenset(sorted(A, reverse=True)))
# frozenset({1, 3, 5, -4, -2})

print(frozenset(sorted(A, key=abs)))
# frozenset({1, 3, 5, -4, -2})

print(frozenset(sorted(A, key=abs, reverse=True)))
# frozenset({1, 3, 5, -4, -2})
Enter fullscreen mode Exit fullscreen mode
A = frozenset(["apple", "Banana", "Kiwi", "cherry"])

""" Case sensitive sort """
print(frozenset(sorted(A)))
# frozenset({'Banana', 'Kiwi', 'cherry', 'apple'})

""" Case insensitive sort """
print(frozenset(sorted(A, key=str.upper)))
print(frozenset(sorted(A, key=str.lower)))
# frozenset({'Banana', 'Kiwi', 'cherry', 'apple'})

""" Sort by the length of a word """
print(frozenset(sorted(A, key=len)))
# frozenset({'Banana', 'Kiwi', 'cherry', 'apple'})
Enter fullscreen mode Exit fullscreen mode

Top comments (0)