Sắp xếp mảng tăng dần Python

Hàm sorted[] trong Python sắp xếp các phần tử của một đối tượng theo thứ tự nhất định [tăng dần hoặc giảm dần] và trả về đối tượng dưới dạng danh sách đã sắp xếp.

Cú pháp của hàm sorted[]

sorted[đối tượng, key=None, reverse=False]

Tham số của hàm sorted[]

sorted[] có thể có tối đa 3 thông số:

  • Đối tượng: Mỗi chuỗi [string, tuple, list] hoặc một bộ sưu tập [set, dictionary, frozen set] hoặc bất kỳ đối tượng iterator  nào.
  • reverse [tùy chọn]: Nếu giá trị là True, danh sách sẽ được sắp xếp theo kiểu đảo ngược [hoặc giảm dần]. Nếu không được khai báo, giá trị mặc định là False.
  • key [tùy chọn]: Nếu có, hàm sorted[] so sánh giá trị với key sau đó sắp xếp. Giá trị mặc định là None.
Hàm sorted[] trong Python được dùng để sắp xếp các phần tử trong đối tượng

Ví dụ 1: Sắp xếp string, lish và tuble

Mời các bạn xem đoạn code sau:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_list]]

# Sắp xếp string
py_string = 'Quantrimang'
print[sorted[py_string]]

# Sắp xếp tuple
py_tuple = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_tuple]]

Khi chạy chương trình kết quả thu được là:

['a', 'a', 'g', 'i', 'm', 'n', 'n', 'q', 'r', 't', 'u']
['Q', 'a', 'a', 'g', 'i', 'm', 'n', 'n', 'r', 't', 'u']
['a', 'a', 'g', 'i', 'm', 'n', 'n', 'q', 'r', 't', 'u']

Chú ý: Một list cũng có hàm sort[] hoạt động tương tự hàm sorted[]. Khác biệt duy nhất đó là hàm sort[] không trả về bất kỳ giá trị nào và thay đổi danh sách ban đầu.

Ví dụ 2: Sắp xếp theo thứ tự giảm dần

Hàm sorted[] có tham số đảo ngược và khi bạn đặt reverse=True, danh sách sẽ được sắp xếp theo thứ tự giảm dần.

Hãy xem xét những dòng code sau:

# Sắp xếp set
py_set = {'q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g'}
print[sorted[py_set, reverse=True]]

# Sắp xếp dictionary
py_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5}
print[sorted[py_dict, reverse=True]]

# Sắp xếp frozen set
frozen_set = frozenset[['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']]
print[sorted[frozen_set, reverse=True]]

Khi chạy chương trình, kết quả trả về là:

['u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a']
['u', 'o', 'i', 'e', 'a']
['u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a']

Tham số key của hàm sorted[] trong Python

Nếu bạn muốn sắp xếp theo kiểu riêng của mình, hàm sorted[] cũng chấp nhận việc lấy một key làm tham số tùy chọn.

Bạn có thể sắp xếp đối tượng dựa trên giá trị được trả về của key. Ví dụ:

sorted[iterable, key=len]

Ở đây, len[] là một hàm tích hợp sẵn của Python với nhiệm vụ đếm chiều dài của một đối tượng.

Danh sách được sắp xếp dựa trên độ dài của phần tử, từ số thấp nhất đến cao nhất.

Ví dụ 3: Sắp xếp một list bằng hàm sorted[] có chứa key

Mời các bạn xem đoạn code:

# Xắp xếp dựa trên phần tử thứ 2
def take_second[elem]:
    return elem[1]


# list ngẫu nhiên
random = [[2, 2], [3, 4], [4, 1], [1, 3]]

# sắp xếp list với key
sorted_list = sorted[random, key=take_second]

# hiển thị list
print['List đã được sắp xếp:', sorted_list]

Sau khi chạy chương trình, kết quả thu được là

List đã được sắp: [[4, 1], [2, 2], [1, 3], [3, 4]]

Ví dụ 4: Sắp xếp với nhiều key

Ban đầu chúng ta có một danh sách như sau:

# List kết quả thi học kỳ của các sinh viên
# Các thành phần của list: [Tên sinh viên, Điểm số đạt được theo thang 100, Tuổi]

participant_list = [
    ['Lê An', 50, 18],
    ['Trần Bình', 75, 12],
    ['Trần Tâm', 75, 20],
    ['Thanh Lam', 90, 22],
    ['Vũ Lan', 45, 12]
]

Bây giờ chúng ta cần sắp xếp list sinh viên theo điểm số từ cao xuống thấp. Trong trường hợp này, nếu sinh viên có cùng điểm số thì sinh viên nhỏ tuổi hơn sẽ được xếp ở vị trí phía trước.

Chúng ta có thể làm được điều này với hàm sorted[] nhiều key bằng cách đưa các con số về dạng tuple.

Hai tuple có thể được so sánh bằng cách so sánh các yếu tố từ đầu đến cuối. Nếu có một yếu tố bằng nhau, yếu tố thứ hai sẽ được so sánh... tiếp tục cho tới hết.

>>> [1,3] > [1, 4]
False
>>> [1, 4] < [2,2]
True
>>> [1, 4, 1] < [2, 1]
True

Dùng cách xử lý này, chúng ta có thể xây dựng đoạn code so sánh như sau:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_list]]

# Sắp xếp string
py_string = 'Quantrimang'
print[sorted[py_string]]

# Sắp xếp tuple
py_tuple = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_tuple]]
0

Khi chạy chương trình, kết quả thu được là:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_list]]

# Sắp xếp string
py_string = 'Quantrimang'
print[sorted[py_string]]

# Sắp xếp tuple
py_tuple = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_tuple]]
1

Do hàm sắp xếp ngắn và chỉ cần một dòng nên hàm lambda được sử dụng bên trong key thay vì chuyển ra ngoài thành hàm riêng.

Đoạn code trên có thể viết lại bằng hàm lambda theo cách sau:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_list]]

# Sắp xếp string
py_string = 'Quantrimang'
print[sorted[py_string]]

# Sắp xếp tuple
py_tuple = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_tuple]]
2

Kết quả thu được vẫn là:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_list]]

# Sắp xếp string
py_string = 'Quantrimang'
print[sorted[py_string]]

# Sắp xếp tuple
py_tuple = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print[sorted[py_tuple]]
1

Chúc các bạn sớm quen với hàm sorted[] trong Python và đừng quên truy cập trang web dưới đây để học thêm các hàm Python hữu ích khác.

  • Các hàm Python tích hợp sẵn

  • Hàm memoryview[] trong Python
  • Hàm property[] trong Python
  • Hàm setattr[] trong Python
  • Hàm repr[] trong Python

Chủ Nhật, 21/06/2020 22:47

4,69 👨 26.687

1 Bình luận

Sắp xếp theo

Xóa Đăng nhập để Gửi

  • TIÊN HUỲNH VĂN

    Xin chào . mình bị gặp trường hợp sắp xếp như thế này thì phải làm sao để nó sắp xếp lại theo thứ tự số ạ

    list1 = ['1 java', '2 python', '11 c++', '12 php', 'sql']

    list1.sort[]

    print ["List1 duoc sap xep: ", list1]

    kết quả

    List1 duoc sap xep: ['1 java', '11 c++', '12 php', '2 python', 'sql']

    kết quả mong muốn ['1 java', '2 python, '11 c++', '12 php'', 'sql']

    xin cảm ơn

    Thích · Phản hồi · 2 · 07/03/21

Bạn nên đọc

  • Cảnh báo chiến dịch tấn công ransomware quy mô lớn, lạm dụng 7zip để mã hóa các thiết bị QNAP
  • Apple Music ra mắt nền tảng web, đẹp mắt, trực quan, và tương đối đầy đủ tính năng
  • Ý tưởng Galaxy Note 5 Edge màn hình cong hai cạnh
  • Microsoft sẽ dùng phím Office hoàn toàn mới thay thế phím Windows hoặc phím Menu vô dụng
  • Microsoft sửa lỗi các bản vá IE tháng 8
  • Sony giới thiệu cảm biến Super HAD CCD 16 'chấm'

Python

  • Viết chương trình tính căn bậc hai của một số bằng Python
  • Viết chương trình in ra Tam giác Pascal bằng Python
  • Kiểu dữ liệu số trong Python
  • Viết chương trình tính số cách leo cầu thang bằng Python
  • Python là gì? Tại sao nên chọn Python?
  • Lập trình game hứng trứng bằng Python
Xem thêm

Tham khảo Python thêm

  • Các hàm Python có sẵn
    • Hàm abs[]
    • Hàm all[]
    • Hàm any[]
    • Hàm ascii[]
    • Hàm bin[]
    • Hàm bool[]
    • Hàm bytearray[]
    • Hàm bytes[]
    • Hàm callable[]
    • Hàm chr[]
    • Hàm classmethod[]
    • Hàm compile[]
    • Hàm complex[]
    • Hàm delattr[]
    • Hàm dict[]
    • Hàm dir[]
    • Hàm divmod[]
    • Hàm enumerate[]
    • Hàm eval[]
    • Hàm exec[]
    • Hàm filter[]
    • Hàm float[]
    • Hàm format[]
    • Hàm frozenset[]
    • Hàm getattr[]
    • Hàm globals[]
    • Hàm hasattr[]
    • Hàm hash[]
    • Hàm help[]
    • Hàm hex[]
    • Hàm id[]
    • Hàm input[]
    • Hàm int[]
    • Hàm isinstance[]
    • Hàm issubclass[]
    • Hàm iter[]
    • Hàm len[]
    • Hàm list[]
    • Hàm locals[]
    • Hàm map[]
    • Hàm max[]
    • Hàm memoryview[]
    • Hàm min[]
    • Hàm next[]
    • Hàm object[]
    • Hàm oct[]
    • Hàm open[]
    • Hàm ord[]
    • Hàm pow[]
    • Hàm print[]
    • Hàm property[]
    • Hàm range[]
    • Hàm repr[]
    • Hàm reversed[]
    • Hàm round[]
    • Hàm set[]
    • Hàm setattr[]
    • Hàm slice[]
    • Hàm sorted[]
    • Hàm staticmethod[]
    • Hàm str[]
    • Hàm sum[]
    • Hàm super[]
    • Hàm tuple[]
    • Hàm type[]
    • Hàm vars[]
    • Hàm zip[]
    • Hàm __import__[]

  • Công nghệ
    • Ứng dụng
    • Hệ thống
    • Game - Trò chơi
    • iPhone
    • Android
    • Linux
    • Nền tảng Web
    • Đồng hồ thông minh
    • Chụp ảnh - Quay phim
    • macOS
    • Phần cứng
    • Thủ thuật SEO
    • Kiến thức cơ bản
    • Raspberry Pi
    • Dịch vụ ngân hàng
    • Lập trình
    • Dịch vụ công trực tuyến
    • Dịch vụ nhà mạng
    • Nhà thông minh
  • Download
    • Ứng dụng văn phòng
    • Tải game
    • Tiện ích hệ thống
    • Ảnh, đồ họa
    • Internet
    • Bảo mật, Antivirus
    • Họp, học trực tuyến
    • Video, phim, nhạc
    • Mail
    • Lưu trữ đám mây
    • Giao tiếp, liên lạc, hẹn hò
    • Hỗ trợ học tập
    • Máy ảo
  • Tiện ích
  • Khoa học
    • Khoa học vui
    • Khám phá khoa học
    • Bí ẩn - Chuyện lạ
    • Chăm sóc Sức khỏe
    • Khoa học Vũ trụ
    • Khám phá thiên nhiên
  • Điện máy
    • Tủ lạnh
    • Tivi
    • Điều hòa
    • Máy giặt
  • Cuộc sống
    • Kỹ năng
    • Món ngon mỗi ngày
    • Làm đẹp
    • Nuôi dạy con
    • Chăm sóc Nhà cửa
    • Kinh nghiệm Du lịch
    • Halloween
    • Mẹo vặt
    • Giáng sinh - Noel
    • Tết 2023
    • Quà tặng
    • Giải trí
    • Là gì?
    • Nhà đẹp
    • TOP
    • Phong thủy
  • Video
    • Công nghệ
    • Cisco Lab
    • Microsoft Lab
    • Video Khoa học
  • Ô tô, Xe máy
    • Giấy phép lái xe
  • Làng Công nghệ
    • Tấn công mạng
    • Chuyện công nghệ
    • Công nghệ mới
    • Trí tuệ nhân tạo [AI]
    • Anh tài công nghệ
    • Bình luận công nghệ
    • Tổng hợp
  • Học CNTT
    • Quiz công nghệ
    • Microsoft Word 2016
    • Microsoft Word 2013
    • Microsoft Word 2007
    • Microsoft Excel 2019
    • Microsoft Excel 2016
    • Hàm Excel
    • Microsoft PowerPoint 2019
    • Microsoft PowerPoint 2016
    • Google Sheets - Trang tính
    • Code mẫu
    • Photoshop CS6
    • Photoshop CS5
    • HTML
    • CSS và CSS3
    • Python
    • Học SQL
    • Lập trình C
    • Lập trình C++
    • Lập trình C#
    • Học HTTP
    • Bootstrap
    • SQL Server
    • JavaScript
    • Học PHP
    • jQuery
    • Học MongoDB
    • Unix/Linux
    • Học Git
    • NodeJS

Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA

Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: info@meta.vn. Chịu trách nhiệm nội dung: Lê Ngọc Lam.

Bản quyền © 2003-2023 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép.

Chủ Đề