เพื่อเรียงคำในประโยคตามลำดับตัวอักษร ต้อง split ประโยคเป็นคำด้วยช่องว่าง กรณีนี้ split แค่ช่องว่าง ให้ punctuation อยู่ ไม่ได้ลบ สามารถใช้ replace หรือ regex ลบได้
หลัง split เรียงคำ lexicographically (แบบพจนานุกรม) ด้วย sort หรือ sorted ขึ้นอยู่กับต้องการ sort in-place หรือสร้างใหม่
In-place sorting: ใช้ sort() โดยตรง
ตัวอย่าง
sent = "mary has a very beautiful dog"
my_arr = sent.split(" ")
print(my_arr)
my_arr.sort()
print(my_arr)
ผลลัพธ์
['mary', 'has', 'a', 'very', 'beautiful', 'dog'] ['a', 'beautiful', 'dog', 'has', 'mary', 'very']
อาร์เรย์เดิม my_arr ถูกเปลี่ยน ถ้าต้องการเก็บอาร์เรย์เดิมและสร้างใหม่ใช้ sorted()
sent = "mary has a very beautiful dog"
my_arr = sent.split(" ")
print(my_arr)
new_arr = sorted(my_arr)
print(new_arr)
# my_arr ไม่เปลี่ยน
print(my_arr)
ผลลัพธ์
['mary', 'has', 'a', 'very', 'beautiful', 'dog'] ['a', 'beautiful', 'dog', 'has', 'mary', 'very'] ['mary', 'has', 'a', 'very', 'beautiful', 'dog']