Python – #23 – list() – .sort()

Metoda .sort()

Metoda sortuje elementy w liście.

Składnia:

list.sort(key, reverse)

Parametry:

key – argument opcjonalny – domyślna wartość None – określa funkcję o jednym argumencie, która jest używana do wyodrębnienia klucza porównawczego z każdego elementu;
reverse – bool – argument opcjonalny – domyślna wartość False – elementy listy są sortowane tak, jakby każde porównanie było odwrócone.

Wartość zwracana:

None

Przykłady:

list1 = ['one', 'two', 'three', 'four', 'three']
list1.sort()
print(list1)  # wynik --> ['four', 'one', 'three', 'three', 'two']

list1 = [1, 5, 3, 10, 3, 2]
list1.sort()
print(list1)  # wynik --> [1, 2, 3, 3, 5, 10]

list1 = [2.1, 5.1, 3.2, 10.5, 3.2, 2.1]
list1.sort()
print(list1)  # wynik --> [2.1, 2.1, 3.2, 3.2, 5.1, 10.5]

list1 = [2.1, 5.1, 3, 10.5, 3.2, 2]
list1.sort()
print(list1)  # wynik --> [2, 2.1, 3, 3.2, 5.1, 10.5]

list1 = [2, 5.1, 'one', 10.5, 3.2, 'three']
list1.sort()
print(list1)  # wynik --> TypeError: '<' not supported between instances of 'str' and 'float'

list1 = ['d', 'e', 'a', 'z', 'ź', 'ą']
list1.sort()
print(list1)  # wynik --> ['a', 'd', 'e', 'z', 'ą', 'ź']


list1 = [3.0, 3.4, 3.5 - 3.5j, 3.5 + 3.5j, 3.0]
list1.sort()
print(list1)  # wynik --> TypeError: '<' not supported between instances of 'complex' and 'float'

list1 = [3, 5, 6 - 3j, 3 + 3j, 3]
list1.sort()
print(list1)  # wynik --> TypeError: '<' not supported between instances of 'complex' and 'int'

# Przykłady z parametrem reverse
list1 = [1, 5, 3, 10, 3, 2]
list1.sort()
print(list1)  # wynik --> [1, 2, 3, 3, 5, 10]

list1 = [1, 5, 3, 10, 3, 2]
list1.sort(reverse=False)
print(list1)  # wynik --> [1, 2, 3, 3, 5, 10]

list1 = [1, 5, 3, 10, 3, 2]
list1.sort(reverse=True)
print(list1)  # wynik --> [10, 5, 3, 3, 2, 1]

def moje_sortowanie(item):
    return abs(item)

list1 = [1, -5, 3, 10, -3, 2]
list1.sort()
print(list1)  # wynik --> [-5, -3, 1, 2, 3, 10]

list1 = [1, -5, 3, 10, -3, 2]
list1.sort(key=moje_sortowanie)
print(list1)  # wynik --> [1, 2, 3, -3, -5, 10]

list1 = [3.0, 3.4, 3.5 - 3.5j, 3.5 + 3.5j, 3.0]
list1.sort(key=moje_sortowanie)
print(list1)  # wynik --> [3.0, 3.0, 3.4, (3.5-3.5j), (3.5+3.5j)]

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.