Làm cách nào để sắp xếp danh sách mà không sử dụng phương thức sắp xếp trong python?

Hôm nay chúng ta sẽ học Sắp xếp số trong Python mà không cần chức năng sắp xếp. Có một Kata tương tự trong Codewars để Chỉ sắp xếp các số lẻ mà không có Hàm sắp xếp trong Python. Liên kết của Kata tương tự (chỉ sắp xếp các số lẻ) được cung cấp TẠI ĐÂY

Nhiệm vụ

Bạn sẽ được cung cấp một dãy số. Bạn phải sắp xếp các số theo thứ tự tăng dần

Python đã tích hợp sẵn chức năng sắp xếp khiến chúng ta lười suy nghĩ rằng làm thế nào chúng ta có thể sắp xếp một danh sách trong python mà không sử dụng chức năng đó

Bạn cũng sẽ học một cách khác để thực hiện sắp xếp trong Python bằng cách sử dụng hàm

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0 để bạn có thể thấy nó khác với
list_name.sort()
9 như thế nào

Cuối cùng, bạn sẽ biết những kiến ​​thức cơ bản về sắp xếp danh sách trong Python và biết cách tùy chỉnh việc sắp xếp để phù hợp với nhu cầu của bạn

Đây là những gì chúng tôi sẽ đề cập

Phương pháp list_name.sort() 9 - Tổng quan về cú pháp

Phương thức

list_name.sort()
9 là một trong những cách bạn có thể sắp xếp danh sách trong Python

Khi sử dụng

list_name.sort()
9, bạn sắp xếp một danh sách tại chỗ. Điều này có nghĩa là danh sách ban đầu được sửa đổi trực tiếp. Cụ thể, thứ tự ban đầu của các phần tử bị thay đổi

Cú pháp chung của phương thức

list_name.sort()
9 trông như thế này

list_name.sort(reverse=..., key=.. )

Hãy phá vỡ nó

  • # a list of strings
    programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
    
    #sort list in-place in alphabetical order
    programming_languages.sort()
    
    #print modified list
    print(programming_languages)
    
    #output
    
    #['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
    
    2 là tên của danh sách bạn đang làm việc
  • list_name.sort()
    
    9 là một trong các phương thức danh sách của Python để sắp xếp và thay đổi danh sách. Nó sắp xếp các phần tử danh sách theo thứ tự tăng dần hoặc giảm dần
  • list_name.sort()
    
    9 chấp nhận hai tham số tùy chọn
  • # a list of strings
    programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
    
    #sort list in-place in alphabetical order
    programming_languages.sort()
    
    #print modified list
    print(programming_languages)
    
    #output
    
    #['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
    
    5 là tham số tùy chọn đầu tiên. Nó chỉ định xem danh sách sẽ được sắp xếp theo thứ tự tăng dần hay giảm dần. Nó nhận một giá trị Boolean, nghĩa là giá trị là Đúng hoặc Sai. Giá trị mặc định là Sai, nghĩa là danh sách được sắp xếp theo thứ tự tăng dần. Đặt nó thành True sắp xếp ngược danh sách, theo thứ tự giảm dần
  • # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    3 là tham số tùy chọn thứ hai. Nó nhận một hàm hoặc phương thức được sử dụng để chỉ định bất kỳ tiêu chí sắp xếp chi tiết nào mà bạn có thể có

Phương thức

list_name.sort()
9 trả về
# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
8, có nghĩa là không có giá trị trả về vì nó chỉ sửa đổi danh sách ban đầu. Nó không trả về một danh sách mới

Cách sắp xếp các mục trong danh sách theo thứ tự tăng dần bằng phương pháp list_name.sort() 9

Như đã đề cập trước đó, theo mặc định,

list_name.sort()
9 sắp xếp các mục danh sách theo thứ tự tăng dần

Thứ tự tăng dần (hoặc tăng dần) có nghĩa là các mục được sắp xếp từ giá trị thấp nhất đến giá trị cao nhất

Giá trị thấp nhất ở phía bên trái và giá trị cao nhất ở bên phải

Cú pháp chung để làm điều này sẽ giống như sau

list_name.sort()

Hãy xem ví dụ sau đây cho biết cách sắp xếp danh sách các số nguyên

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]

Trong ví dụ trên, các số được sắp xếp từ nhỏ nhất đến lớn nhất

Bạn cũng có thể đạt được điều tương tự khi làm việc với danh sách các chuỗi

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']

Trong trường hợp này, mỗi chuỗi có trong danh sách được sắp xếp theo thứ tự bảng chữ cái

Như bạn đã thấy trong cả hai ví dụ, danh sách ban đầu đã được thay đổi trực tiếp

Cách sắp xếp các mục trong danh sách theo thứ tự giảm dần bằng phương pháp list_name.sort() 9

Thứ tự giảm dần (hoặc giảm dần) ngược lại với thứ tự tăng dần - các phần tử được sắp xếp từ giá trị cao nhất đến giá trị thấp nhất

Để sắp xếp các mục trong danh sách theo thứ tự giảm dần, bạn cần sử dụng tham số

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
5 tùy chọn với phương thức
list_name.sort()
9 và đặt giá trị của nó thành
list_name.sort(reverse=True)
4

Cú pháp chung để làm điều này sẽ giống như thế này

list_name.sort(reverse=True)

Hãy sử dụng lại ví dụ tương tự từ phần trước, nhưng lần này làm cho nó sao cho các số được sắp xếp theo thứ tự ngược lại

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in descending order
my_numbers.sort(reverse=True)

#print modified list
print(my_numbers)

#output

#[100, 54, 33, 22, 11, 10, 8, 7, 3]

Bây giờ tất cả các số được sắp xếp ngược lại, với giá trị lớn nhất ở phía bên trái và nhỏ nhất ở bên phải

Bạn cũng có thể đạt được điều tương tự khi làm việc với danh sách các chuỗi

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in  reverse alphabetical order
programming_languages.sort(reverse=True)

#print modified list
print(programming_languages)

#output

#['Swift', 'Rust', 'Python', 'Java', 'Go', 'C++']

Các mục danh sách hiện được sắp xếp theo thứ tự bảng chữ cái đảo ngược

Cách sắp xếp các mục trong danh sách bằng cách sử dụng tham số # a list of numbers my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54] #sort list in-place in ascending order my_numbers.sort() #print modified list print(my_numbers) #output #[3, 7, 8, 10, 11, 22, 33, 54, 100] 3 với phương pháp list_name.sort() 9

Bạn có thể sử dụng tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 để thực hiện các thao tác sắp xếp tùy chỉnh hơn

Giá trị được gán cho tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 cần phải là thứ có thể gọi được

Callable là thứ có thể gọi được, có nghĩa là nó có thể được triệu gọi và tham chiếu

Một số ví dụ về các đối tượng có thể gọi được là các phương thức và hàm

Phương thức hoặc chức năng được gán cho

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 này sẽ được áp dụng cho tất cả các phần tử trong danh sách trước khi xảy ra bất kỳ sự sắp xếp nào và sẽ chỉ định logic cho tiêu chí sắp xếp

Giả sử bạn muốn sắp xếp danh sách các chuỗi dựa trên độ dài của chúng

Đối với điều đó, bạn chỉ định hàm

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in descending order
my_numbers.sort(reverse=True)

#print modified list
print(my_numbers)

#output

#[100, 54, 33, 22, 11, 10, 8, 7, 3]
0 tích hợp cho tham số
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3

Hàm

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in descending order
my_numbers.sort(reverse=True)

#print modified list
print(my_numbers)

#output

#[100, 54, 33, 22, 11, 10, 8, 7, 3]
0 sẽ đếm độ dài của mỗi phần tử được lưu trữ trong danh sách bằng cách đếm các ký tự có trong phần tử đó

programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

programming_languages.sort(key=len)

print(programming_languages)

#output

#['Go', 'C++', 'Java', 'Rust', 'Swift', 'Python']

Trong ví dụ trên, các chuỗi được sắp xếp theo thứ tự tăng dần mặc định, nhưng lần này việc sắp xếp xảy ra dựa trên độ dài của chúng

Chuỗi ngắn nhất ở bên trái và dài nhất ở bên phải

Các tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 và
# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
5 cũng có thể được kết hợp

Ví dụ: bạn có thể sắp xếp các mục trong danh sách dựa trên độ dài của chúng nhưng theo thứ tự giảm dần

programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

programming_languages.sort(key=len, reverse=True)

print(programming_languages)

#output

#['Python', 'Swift', 'Java', 'Rust', 'C++', 'Go']

Trong ví dụ trên, các chuỗi đi từ dài nhất đến ngắn nhất

Một điều khác cần lưu ý là bạn có thể tạo chức năng sắp xếp tùy chỉnh của riêng mình, để tạo tiêu chí sắp xếp rõ ràng hơn

Ví dụ: bạn có thể tạo một hàm cụ thể rồi sắp xếp danh sách theo giá trị trả về của hàm đó

Giả sử bạn có một danh sách các từ điển có ngôn ngữ lập trình và năm tạo ra từng ngôn ngữ lập trình

programming_languages = [{'language':'Python','year':1991},
{'language':'Swift','year':2014},
{'language':'Java', 'year':1995},
{'language':'C++','year':1985},
{'language':'Go','year':2007},
{'language':'Rust','year':2010},
]

Bạn có thể xác định một hàm tùy chỉnh nhận giá trị của một khóa cụ thể từ từ điển

💡 Hãy nhớ rằng khóa từ điển và tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 mà
list_name.sort()
9 chấp nhận là hai điều khác nhau

Cụ thể, hàm sẽ lấy và trả về giá trị của khóa

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in descending order
my_numbers.sort(reverse=True)

#print modified list
print(my_numbers)

#output

#[100, 54, 33, 22, 11, 10, 8, 7, 3]
7 trong danh sách từ điển, trong đó chỉ định năm tạo ra mọi ngôn ngữ trong từ điển

Sau đó, giá trị trả về sẽ được áp dụng làm tiêu chí sắp xếp cho danh sách

list_name.sort()
0

Sau đó, bạn có thể sắp xếp theo giá trị trả về của hàm bạn đã tạo trước đó bằng cách gán nó cho tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 và sắp xếp theo thứ tự thời gian tăng dần mặc định

list_name.sort()
1

đầu ra

list_name.sort()
2

Nếu bạn muốn sắp xếp từ ngôn ngữ được tạo gần đây nhất đến ngôn ngữ cũ nhất hoặc theo thứ tự giảm dần, thì bạn sử dụng tham số

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in descending order
my_numbers.sort(reverse=True)

#print modified list
print(my_numbers)

#output

#[100, 54, 33, 22, 11, 10, 8, 7, 3]
9

list_name.sort()
3

đầu ra

list_name.sort()
4

Để đạt được kết quả chính xác như vậy, bạn có thể tạo hàm lambda

Thay vì sử dụng chức năng tùy chỉnh thông thường mà bạn đã xác định bằng từ khóa

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in  reverse alphabetical order
programming_languages.sort(reverse=True)

#print modified list
print(programming_languages)

#output

#['Swift', 'Rust', 'Python', 'Java', 'Go', 'C++']
0, bạn có thể

  • tạo một biểu thức một dòng ngắn gọn,
  • và không xác định tên hàm như bạn đã làm với hàm
    # a list of strings
    programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
    
    #sort list in-place in  reverse alphabetical order
    programming_languages.sort(reverse=True)
    
    #print modified list
    print(programming_languages)
    
    #output
    
    #['Swift', 'Rust', 'Python', 'Java', 'Go', 'C++']
    
    0. Hàm lambda còn được gọi là hàm ẩn danh
list_name.sort()
5

Hàm lambda được chỉ định với dòng

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in  reverse alphabetical order
programming_languages.sort(reverse=True)

#print modified list
print(programming_languages)

#output

#['Swift', 'Rust', 'Python', 'Java', 'Go', 'C++']
2 sắp xếp các ngôn ngữ lập trình này từ cũ nhất đến mới nhất

Sự khác biệt giữa list_name.sort() 9 và # a list of numbers my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54] #sort list in-place in ascending order my_numbers.sort() #print modified list print(my_numbers) #output #[3, 7, 8, 10, 11, 22, 33, 54, 100] 0

Phương thức

list_name.sort()
9 hoạt động tương tự như hàm
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0

Cú pháp chung của hàm

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0 trông như thế này

list_name.sort()
6

Hãy phá vỡ nó

  • # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 là một chức năng tích hợp chấp nhận một lần lặp. Sau đó, nó sắp xếp nó theo thứ tự tăng dần hoặc giảm dần
  • # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 chấp nhận ba tham số. Một tham số là bắt buộc và hai tham số còn lại là tùy chọn
  • # a list of strings
    programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
    
    #sort list in-place in alphabetical order
    programming_languages.sort()
    
    #print modified list
    print(programming_languages)
    
    #output
    
    #['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
    
    2 là tham số bắt buộc. Trong trường hợp này, tham số là danh sách, nhưng
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 chấp nhận bất kỳ đối tượng có thể lặp lại nào khác
  • # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 cũng chấp nhận các tham số tùy chọn
    # a list of strings
    programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]
    
    #sort list in-place in alphabetical order
    programming_languages.sort()
    
    #print modified list
    print(programming_languages)
    
    #output
    
    #['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
    
    5 và
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    3, đây là các tham số tùy chọn tương tự mà phương thức
    list_name.sort()
    
    9 chấp nhận

Sự khác biệt chính giữa

list_name.sort()
9 và
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0 là hàm
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0 lấy một danh sách và trả về một bản sao mới được sắp xếp của nó

Bản sao mới chứa các phần tử của danh sách gốc theo thứ tự được sắp xếp

Các phần tử trong danh sách ban đầu không bị ảnh hưởng và không thay đổi

Vì vậy, để tóm tắt sự khác biệt

  • Phương thức
    list_name.sort()
    
    9 không có giá trị trả về và trực tiếp sửa đổi danh sách ban đầu, thay đổi thứ tự của các phần tử chứa trong đó
  • Mặt khác, hàm
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 có giá trị trả về là bản sao được sắp xếp của danh sách gốc. Bản sao đó chứa các mục danh sách của danh sách gốc theo thứ tự được sắp xếp. Cuối cùng, danh sách ban đầu vẫn còn nguyên

Hãy xem ví dụ sau để xem nó hoạt động như thế nào

list_name.sort()
7

Vì không có đối số bổ sung nào được cung cấp cho

# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0, nó đã sắp xếp bản sao của danh sách gốc theo thứ tự tăng dần mặc định, từ giá trị nhỏ nhất đến giá trị lớn nhất

Và khi in danh sách ban đầu, bạn thấy rằng nó vẫn giữ nguyên và các mặt hàng có thứ tự ban đầu

Như bạn đã thấy trong ví dụ trên, bản sao của danh sách đã được gán cho một biến mới,

programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

programming_languages.sort(key=len, reverse=True)

print(programming_languages)

#output

#['Python', 'Swift', 'Java', 'Rust', 'C++', 'Go']
2

Điều đó không thể thực hiện được với

list_name.sort()
9

Kiểm tra ví dụ sau để xem điều gì sẽ xảy ra nếu điều đó được thử bằng phương pháp

list_name.sort()
9

list_name.sort()
8

Bạn thấy rằng giá trị trả về của

list_name.sort()
9 là
# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
8

Cuối cùng, một điều khác cần lưu ý là các tham số

# a list of strings
programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"]

#sort list in-place in alphabetical order
programming_languages.sort()

#print modified list
print(programming_languages)

#output

#['C++', 'Go', 'Java', 'Python', 'Rust', 'Swift']
5 và
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
3 mà hàm
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0 chấp nhận hoạt động giống như cách chúng thực hiện với phương thức
list_name.sort()
9 mà bạn đã thấy trong các phần trước

Khi nào nên sử dụng list_name.sort() 9 và # a list of numbers my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54] #sort list in-place in ascending order my_numbers.sort() #print modified list print(my_numbers) #output #[3, 7, 8, 10, 11, 22, 33, 54, 100] 0

Dưới đây là một số điều bạn có thể muốn cân nhắc khi quyết định xem mình có nên sử dụng

list_name.sort()
9 so với
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0

Trước tiên, hãy xem xét loại dữ liệu bạn đang làm việc với

  • Nếu bạn đang làm việc nghiêm túc với một danh sách ngay từ đầu, thì bạn sẽ cần sử dụng phương pháp
    list_name.sort()
    
    9 vì
    list_name.sort()
    
    9 chỉ được gọi trong danh sách
  • Mặt khác, nếu bạn muốn linh hoạt hơn và chưa làm việc với danh sách, thì bạn có thể sử dụng
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0. Hàm
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 chấp nhận và sắp xếp bất kỳ khả năng lặp nào (như từ điển, bộ dữ liệu và bộ) chứ không chỉ danh sách

Tiếp theo, một điều khác cần xem xét là liệu bạn có giữ lại thứ tự ban đầu của danh sách mà bạn đang làm việc hay không.

  • Khi gọi cho
    list_name.sort()
    
    9, danh sách ban đầu sẽ bị thay đổi và đơn hàng ban đầu sẽ bị mất. Bạn sẽ không thể truy xuất vị trí ban đầu của các thành phần danh sách. Sử dụng
    list_name.sort()
    
    9 khi bạn chắc chắn muốn thay đổi danh sách bạn đang làm việc và chắc chắn rằng bạn không muốn giữ lại thứ tự đã có
  • Mặt khác,
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 hữu ích khi bạn muốn tạo một danh sách mới nhưng vẫn muốn giữ lại danh sách mà bạn đang làm việc. Hàm
    # a list of numbers
    my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]
    
    #sort list in-place in ascending order
    my_numbers.sort()
    
    #print modified list
    print(my_numbers)
    
    #output
    
    #[3, 7, 8, 10, 11, 22, 33, 54, 100]
    
    0 sẽ tạo một danh sách được sắp xếp mới với các phần tử danh sách được sắp xếp theo thứ tự mong muốn

Cuối cùng, một điều khác mà bạn có thể muốn xem xét khi làm việc với các tập dữ liệu lớn hơn, đó là hiệu quả về thời gian và bộ nhớ

  • Phương thức
    list_name.sort()
    
    9 chiếm và tiêu thụ ít bộ nhớ hơn vì nó chỉ sắp xếp danh sách tại chỗ và không tạo danh sách mới không cần thiết mà bạn không cần. Vì lý do tương tự, nó cũng nhanh hơn một chút vì nó không tạo bản sao. Điều này có thể hữu ích khi bạn đang làm việc với các danh sách lớn hơn chứa nhiều phần tử hơn

Phần kết luận

Và bạn có nó rồi đấy. Bây giờ bạn đã biết cách sắp xếp danh sách trong Python bằng phương thức

list_name.sort()
9

Bạn cũng đã xem qua sự khác biệt chính giữa việc sắp xếp danh sách bằng cách sử dụng

list_name.sort()
9 và
# a list of numbers
my_numbers = [10, 8, 3, 22, 33, 7, 11, 100, 54]

#sort list in-place in ascending order
my_numbers.sort()

#print modified list
print(my_numbers)

#output

#[3, 7, 8, 10, 11, 22, 33, 54, 100]
0

Tôi hy vọng bạn tìm thấy bài viết này hữu ích

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem Chứng chỉ máy tính khoa học với Python của freeCodeCamp

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học

Cảm ơn đã đọc và mã hóa hạnh phúc

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Làm cách nào để sắp xếp danh sách mà không sử dụng phương thức sắp xếp trong python?
Dionysia Lemonaki

Học một cái gì đó mới mỗi ngày và viết về nó


Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để sắp xếp danh sách chuỗi trong Python mà không có chức năng sắp xếp?

Để sắp xếp chuỗi theo thứ tự bảng chữ cái trong Python mà không sử dụng hàm sắp xếp, bạn có thể thử cách sau. chuỗi = "cba" .
string=input("NHẬP CHUỖI. ")
chuỗi danh sách = []
len_string=len(chuỗi)
cho tôi trong chuỗi
chuỗi danh sách. nối thêm (i)
in (chuỗi danh sách)

Có cách nào để sắp xếp danh sách trong Python không?

Danh sách Python có danh sách tích hợp. phương thức sắp xếp () sửa đổi danh sách tại chỗ . Ngoài ra còn có một chức năng tích hợp được sắp xếp () để xây dựng một danh sách được sắp xếp mới từ một lần lặp.

Cách tốt nhất để sắp xếp một danh sách là gì?

Sắp xếp nhanh là một trong những thuật toán sắp xếp hiệu quả nhất và điều này khiến nó trở thành một trong những thuật toán được sử dụng nhiều nhất. Điều đầu tiên cần làm là chọn một số trục, số này sẽ tách dữ liệu, bên trái của nó là các số nhỏ hơn nó và các số lớn hơn ở bên phải.