Сартаванне спісу ў Python: розніца паміж адсартаваным і адсартаваным

Бізнэс

Ёсць два спосабы сартаваць спіс у парадку ўзрастання або змяншэння ў Python.

  • sort()
  • sorted()

Калі вы хочаце адсартаваць радок або картэж, выкарыстоўвайце sorted().

Тут прадстаўлена наступная інфармацыя.

  • Метад спісу тыпаў, які сартуе зыходны спісsort()
  • Стварыць новы адсартаваны спіс, убудаваная функцыя: .sorted()
  • Як сартаваць радкі і картэжы

Сартаванне зыходнага спісу, метад тыпу list: sort()

sort() з’яўляецца метадам тыпу спісу.

Дэструктыўны працэс, пры якім сам першапачатковы спіс перапісваецца.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Звярніце ўвагу, што sort() вяртае None.

print(org_list.sort())
# None

Па змаўчанні ў парадку ўзрастання. Калі вы хочаце сартаваць у парадку змяншэння, усталюйце аргумент reverse у true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Стварыць новы адсартаваны спіс, убудаваная функцыя: sorted()

sorted() – гэта ўбудаваная функцыя.

Вяртае адсартаваны спіс, калі спіс для сартавання зададзены ў якасці аргумента. Гэта неразбуральны працэс, які не змяняе першапачатковы спіс.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Як і ў выпадку з sort(), па змаўчанні ў парадку ўзрастання. Калі вы хочаце сартаваць у парадку змяншэння, усталюйце аргумент reverse у true.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Як сартаваць радкі і картэжы

Паколькі радкі і картэжы нязменныя, няма метаду sort() для перапісвання зыходнага аб’екта.

З іншага боку, аргументам функцыі sorted(), якая генеруе адсартаваны спіс як новы аб’ект, можа быць радок або картэж, а таксама спіс. Аднак, паколькі sorted() вяртае спіс, яго трэба пераўтварыць у радок або картэж.

Сартаванне радкоў

Калі радок задаецца ў якасці аргумента функцыі sorted(), вяртаецца спіс, у якім кожны сімвал адсартаванага радка захоўваецца як элемент.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Каб аб’яднаць спіс радкоў у адзін радок, выкарыстоўвайце метад join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Калі вы хочаце сартаваць у парадку змяншэння, усталюйце аргумент reverse у true.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

Памер радка вызначаецца кодавай кропкай Unicode (кодам сімвала) сімвала.

Сартаванне картэжаў

Картэжы тое ж самае, што і радкі; заданне кортэжа ў якасці аргумента функцыі sorted() вяртае адсартаваны спіс элементаў.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Каб пераўтварыць спіс у картэж, выкарыстоўвайце tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Калі вы хочаце сартаваць у парадку змяншэння, усталюйце аргумент reverse у true.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)