DEV Community

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

Posted on • Edited on

List in Python (4)

Buy Me a Coffee

*Memo:

  • My post explains a list and the list with indexing.
  • My post explains the list with slicing and copy.
  • My post explains list functions (1).

sort() can sort the list as shown below:

*Memo:

  • The 1st argument is key(Optional-Default:None-Type:Callable or NoneType).
  • The 2nd argument is reverse(Optional-Default:False-Type:bool) to reverse the list.
  • sort() doesn't create a copy different from sorted().
v = [3, 5, -2, 1, -4] v.sort() v.sort(key=None, reverse=False) print(v) # [-4, -2, 1, 3, 5]  v.sort(reverse=True) print(v) # [5, 3, 1, -2, -4]  v.sort(key=abs) print(v) # [1, -2, 3, -4, 5]  v.sort(key=abs, reverse=True) print(v) # [5, -4, 3, -2, 1] 
Enter fullscreen mode Exit fullscreen mode
v = ["apple", "Banana", "Kiwi", "cherry"] # Case sensitive sort v.sort() print(v) # ['Banana', 'Kiwi', 'apple', 'cherry']  # Case insensitive sort v.sort(key=str.upper) v.sort(key=str.lower) print(v) # ['apple', 'Banana', 'cherry', 'Kiwi']  # Sort by the length of a word v.sort(key=len) print(v) # ['Kiwi', 'apple', 'Banana', 'cherry'] 
Enter fullscreen mode Exit fullscreen mode

sorted() can sort a list 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 different from sort():
    • Be careful, sorted() does shallow copy instead of deep copy as my issue.
v = [3, 5, -2, 1, -4] print(sorted(v)) print(sorted(v, key=None, reverse=False)) # [-4, -2, 1, 3, 5]  print(sorted(v, reverse=True)) # [5, 3, 1, -2, -4]  print(sorted(v, key=abs)) # [1, -2, 3, -4, 5]  print(sorted(v, key=abs, reverse=True)) # [5, -4, 3, -2, 1] 
Enter fullscreen mode Exit fullscreen mode
v = ["apple", "Banana", "Kiwi", "cherry"] # Case sensitive sort print(sorted(v)) # ['Banana', 'Kiwi', 'apple', 'cherry']  # Case insensitive sort print(sorted(v, key=str.upper)) print(sorted(v, key=str.lower)) # ['apple', 'Banana', 'cherry', 'Kiwi']  # Sort by the length of a word print(sorted(v, key=len)) # ['Kiwi', 'apple', 'Banana', 'cherry'] 
Enter fullscreen mode Exit fullscreen mode

reverse() can reverse the list as shown below:

*Memo:

  • It has no arguments.
v = [3, 5, -2, 1, -4] v.reverse() print(v) # [-4, 1, -2, 5, 3] 
Enter fullscreen mode Exit fullscreen mode
v = ["apple", "Banana", "Kiwi", "cherry"] v.reverse() print(v) # ['cherry', 'Kiwi', 'Banana', 'apple'] 
Enter fullscreen mode Exit fullscreen mode

reversed() can return the iterator which has the reversed elements of a list, then the iterator is converted to a list with list() as shown below:

*Memo:

  • The 1st argument is seq(Required-Type:Sequence):
    • Don't use seq=.
v = [3, 5, -2, 1, -4] print(reversed(v)) # <list_reverseiterator object at 0x000001F3B993B280>  print(list(reversed(v))) # [-4, 1, -2, 5, 3] 
Enter fullscreen mode Exit fullscreen mode
v = ["apple", "Banana", "Kiwi", "cherry"] print(list(reversed(v))) # ['cherry', 'Kiwi', 'Banana', 'apple'] 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)