Có cách nào dễ dàng để sắp xếp các chữ cái trong một chuỗi theo thứ tự abc trong Python không?
Vì vậy đối với:
a = 'ZENOVW'
Tôi muốn quay lại:
'ENOVWZ'
Có cách nào dễ dàng để sắp xếp các chữ cái trong một chuỗi theo thứ tự abc trong Python không?
Vì vậy đối với:
a = 'ZENOVW'
Tôi muốn quay lại:
'ENOVWZ'
Câu trả lời:
Bạn có thể làm:
>>> a = 'ZENOVW'
>>> ''.join(sorted(a))
'ENOVWZ'
''.join(sorted(a, reverse=True, key=str.lower))
có thể được sử dụng để thực hiện một loại không phân biệt chữ hoa chữ thường. Có thể có ích.
Giải pháp Sắp xếp () có thể cung cấp cho bạn một số kết quả không mong muốn với các chuỗi khác.
Danh sách các giải pháp khác:
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower())))
' belou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s)))
' Bbelou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(s))
' BBbbbbeellou'
Nếu bạn muốn loại bỏ khoảng trắng trong kết quả, hãy thêm hàm dải () trong bất kỳ trường hợp nào được đề cập:
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower()))).strip()
'belou'
Hàm Python sorted
trả về kết quả dựa trên ASCII cho chuỗi.
TUYỆT VỜI : Trong ví dụ dưới đây, e
và d
đứng sau H
và W
do giá trị ASCII.
>>>a = "Hello World!"
>>>"".join(sorted(a))
' !!HWdellloor'
ĐÚNG : Để viết chuỗi đã sắp xếp mà không thay đổi trường hợp chữ. Sử dụng mã:
>>> a = "Hello World!"
>>> "".join(sorted(a,key=lambda x:x.lower()))
' !deHllloorW'
Nếu bạn muốn loại bỏ tất cả dấu chấm câu và số. Sử dụng mã:
>>> a = "Hello World!"
>>> "".join(filter(lambda x:x.isalpha(), sorted(a,key=lambda x:x.lower())))
'deHllloorW'
mã có thể được sử dụng để sắp xếp chuỗi theo thứ tự bảng chữ cái mà không sử dụng bất kỳ chức năng sẵn có nào của python
k = input ("Nhập lại bất kỳ chuỗi nào")
li = []
x = len(k)
for i in range (0,x):
li.append(k[i])
print("List is : ",li)
for i in range(0,x):
for j in range(0,x):
if li[i]<li[j]:
temp = li[i]
li[i]=li[j]
li[j]=temp
j=""
for i in range(0,x):
j = j+li[i]
print("After sorting String is : ",j)
Thực sự thích câu trả lời với hàm less (). Đây là một cách khác để sắp xếp chuỗi bằng cách sử dụng tích lũy ().
from itertools import accumulate
s = 'mississippi'
print(tuple(accumulate(sorted(s)))[-1])
đã sắp xếp (>) - [ ]
tuple (tích lũy (đã sắp xếp) (> ',' iiiimppssss ')
Chúng tôi đang chọn chỉ số cuối cùng (-1) của bộ dữ liệu
sorted(a)
sẽ trả về một danh sách được sắp xếp, vì vậy để so sánh chuỗi bạn không cầnjoin()
(xem câu trả lời của askewchan bên dưới).