Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
- Bàn luận
- Đưa ra một danh sách các chuỗi, nhiệm vụ là sắp xếp danh sách đó dựa trên yêu cầu nhất định. Có nhiều kịch bản có thể trong khi sắp xếp một danh sách chuỗi, như -
- Sắp xếp theo thứ tự bảng chữ cái/ngược.
Dựa trên độ dài của ký tự chuỗi
Sắp xếp các giá trị số nguyên trong danh sách chuỗi, v.v. Using sort[] function.
Python3
Hãy để thảo luận về nhiều cách khác nhau để thực hiện nhiệm vụ này. & NBSP;
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']5
Ví dụ #1: sử dụng hàm sort []. & Nbsp;
Output:
['a', 'for', 'geeks', 'gfg', 'is', 'portal']
IsExample #2: Using sorted[] function.
Python3
Hãy để thảo luận về nhiều cách khác nhau để thực hiện nhiệm vụ này. & NBSP;
Ví dụ #1: sử dụng hàm sort []. & Nbsp;
['portal', 'is', 'gfg', 'geeks', 'for', 'a']8
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']6
mylist = ["b", "C", "A"]
mylist.sort[]
0Output:
a for geeks gfg is portal
IsExample #3: Sort by length of strings
Python3
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']6
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']7
& nbsp; Ví dụ #2: sử dụng hàm sort []. & Nbsp;
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']6
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']7
Output:
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']
['portal', 'is', 'gfg', 'geeks', 'for', 'a']3
['portal', 'is', 'gfg', 'geeks', 'for', 'a']4
['portal', 'is', 'gfg', 'geeks', 'for', 'a']5
['portal', 'is', 'gfg', 'geeks', 'for', 'a']6
['portal', 'is', 'gfg', 'geeks', 'for', 'a']7Example #4: Sort string by integer value
Python3
& nbsp; Ví dụ #3: Sắp xếp theo độ dài của chuỗi & nbsp;
Các
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']6
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']7
Output:
['7', '11', '23', '33', '55']
6for x in sorted[mylist]:
print x
a
for
geeks
gfg
is
portal
1
8for x in sorted[mylist]:
print x
9 Sort in descending order for x in sorted[mylist]:
print x
Python3
Hãy để thảo luận về nhiều cách khác nhau để thực hiện nhiệm vụ này. & NBSP;
Ví dụ #1: sử dụng hàm sort []. & Nbsp;
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']6
['a', 'is', 'for', 'geeks', 'portal', 'Geeksforgeeks']7
Output:
['portal', 'is', 'gfg', 'geeks', 'for', 'a']
Câu trả lời cơ bản:
mylist = ["b", "C", "A"]
mylist.sort[]
Điều này sửa đổi danh sách ban đầu của bạn [nghĩa là sắp xếp tại chỗ]. Để có được một bản sao được sắp xếp của danh sách, mà không cần thay đổi bản gốc, hãy sử dụng hàm
a for geeks gfg is portal12:
for x in sorted[mylist]:
print x
Tuy nhiên, các ví dụ trên là một chút ngây thơ, vì chúng không tính đến địa phương và thực hiện phân loại nhạy cảm trường hợp. Bạn có thể tận dụng tham số tùy chọn
a for geeks gfg is portal13 để chỉ định thứ tự sắp xếp tùy chỉnh [phương án thay thế, sử dụng
a for geeks gfg is portal14, là một giải pháp không dùng nữa, vì nó phải được đánh giá nhiều lần -
a for geeks gfg is portal13 chỉ được tính toán một lần cho mỗi phần tử].
Vì vậy, để sắp xếp theo tài khoản hiện tại, đưa các quy tắc cụ thể về ngôn ngữ [
a for geeks gfg is portal16 là một hàm trợ giúp từ functools]:
sorted[mylist, key=cmp_to_key[locale.strcoll]]
Và cuối cùng, nếu bạn cần, bạn có thể chỉ định một địa phương tùy chỉnh để sắp xếp:
import locale
locale.setlocale[locale.LC_ALL, 'en_US.UTF-8'] # vary depending on your lang/locale
assert sorted[[u'Ab', u'ad', u'aa'],
key=cmp_to_key[locale.strcoll]] == [u'aa', u'Ab', u'ad']
Lưu ý cuối cùng: Bạn sẽ thấy các ví dụ về phân loại không nhạy cảm trường hợp sử dụng phương thức
a for geeks gfg is portal17 - đó là không chính xác, bởi vì chúng chỉ hoạt động cho tập hợp con của các ký tự ASCII. Hai người đó sai đối với bất kỳ dữ liệu không phải tiếng Anh nào:
# this is incorrect!
mylist.sort[key=lambda x: x.lower[]]
# alternative notation, a bit faster, but still wrong
mylist.sort[key=str.lower]