*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]
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']
sorted() can sort a list as shown below:
*Memo:
- The 1st argument is
iterable
(Required-Type:Iterable):- Don't use
iterable=
.
- Don't use
- 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.
- Be careful,
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]
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']
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]
v = ["apple", "Banana", "Kiwi", "cherry"]
v.reverse()
print(v)
# ['cherry', 'Kiwi', 'Banana', 'apple']
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=
.
- Don't use
v = [3, 5, -2, 1, -4]
print(reversed(v))
# <list_reverseiterator object at 0x000001F3B993B280>
print(list(reversed(v)))
# [-4, 1, -2, 5, 3]
v = ["apple", "Banana", "Kiwi", "cherry"]
print(list(reversed(v)))
# ['cherry', 'Kiwi', 'Banana', 'apple']
Top comments (0)