จากความคิดเห็น:
ฉันต้องการเรียงลำดับแต่ละชุด
ง่ายมาก สำหรับชุดใด ๆs(หรือสิ่งอื่นที่ทำซ้ำได้) ให้sorted(s)ส่งคืนรายการขององค์ประกอบsตามลำดับที่จัดเรียง:
>>> s = set(['0.000000000', '0.009518000', '10.277200999', '0.030810999', '0.018384000', '4.918560000'])
>>> sorted(s)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '10.277200999', '4.918560000']
โปรดทราบว่าsortedกำลังให้คุณlistไม่ใช่set. นั่นเป็นเพราะจุดรวมของเซตทั้งในคณิตศาสตร์และเกือบทุกภาษาการเขียนโปรแกรม * คือมันไม่ได้เรียงลำดับ: เซต{1, 2}และ{2, 1}เป็นเซตเดียวกัน
คุณอาจไม่ต้องการจัดเรียงองค์ประกอบเหล่านั้นเป็นสตริง แต่เป็นตัวเลข (ดังนั้น 4.918560000 จะมาก่อน 10.277200999 แทนที่จะเป็นหลัง)
ทางออกที่ดีที่สุดมักจะจัดเก็บตัวเลขเป็นตัวเลขแทนที่จะเป็นสตริงในตอนแรก แต่ถ้าไม่คุณต้องใช้keyฟังก์ชัน:
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
สำหรับข้อมูลเพิ่มเติมโปรดดูการจัดเรียง HOWTOในเอกสารอย่างเป็นทางการ
* ดูความคิดเห็นสำหรับข้อยกเว้น