Mengisih senarai dalam Python: perbezaan antara diisih dan diisih

Perniagaan

Terdapat dua cara untuk mengisih senarai dalam susunan menaik atau menurun dalam Python.

  • sort()
  • sorted()

Jika anda ingin mengisih rentetan atau tupel, gunakan sorted().

Maklumat berikut disediakan di sini.

  • Kaedah senarai jenis yang mengisih senarai asalsort()
  • Hasilkan senarai diisih baharu, fungsi terbina dalam: .sorted()
  • Bagaimana untuk mengisih rentetan dan tupel

Mengisih senarai asal, kaedah senarai jenis: sort()

sort() ialah kaedah jenis senarai.

Satu proses yang merosakkan di mana senarai asal itu sendiri ditulis semula.

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

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

Ambil perhatian bahawa sort() mengembalikan Tiada.

print(org_list.sort())
# None

Lalai ialah tertib menaik. Jika anda ingin mengisih dalam tertib menurun, tetapkan hujah terbalik kepada benar.

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

Hasilkan senarai diisih baharu, fungsi terbina dalam: sorted()

sorted() ialah fungsi terbina dalam.

Mengembalikan senarai diisih apabila senarai yang hendak diisih ditentukan sebagai hujah. Ini adalah proses yang tidak merosakkan yang tidak mengubah senarai asal.

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]

Seperti sort(), lalai ialah tertib menaik. Jika anda ingin mengisih dalam tertib menurun, tetapkan hujah terbalik kepada benar.

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]

Bagaimana untuk mengisih rentetan dan tupel

Oleh kerana rentetan dan tupel tidak boleh diubah, tiada kaedah sort() tersedia untuk menulis semula objek asal.

Sebaliknya, hujah fungsi sorted(), yang menjana senarai diisih sebagai objek baharu, boleh menjadi rentetan atau tupel serta senarai. Walau bagaimanapun, memandangkan sorted() mengembalikan senarai, ia perlu ditukar kepada rentetan atau tupel.

Menyusun rentetan

Apabila rentetan ditentukan sebagai hujah bagi fungsi sorted(), senarai dikembalikan di mana setiap aksara rentetan diisih disimpan sebagai elemen.

org_str = 'cebad'

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

Untuk menggabungkan senarai rentetan menjadi rentetan tunggal, gunakan kaedah join().

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

Jika anda ingin mengisih dalam tertib menurun, tetapkan hujah terbalik kepada benar.

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

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

Saiz rentetan ditentukan oleh titik kod Unicode (kod aksara) aksara.

Menyusun tupel

Tuple adalah sama dengan rentetan; menentukan tupel sebagai hujah fungsi sorted() mengembalikan senarai unsur yang diisih.

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]

Untuk menukar senarai kepada tupel, gunakan tuple().

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

Jika anda ingin mengisih dalam tertib menurun, tetapkan hujah terbalik kepada benar.

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)