ฟังก์ชัน cmp()
ฟังก์ชัน cmp(x,y) จะเปรียบเทียบค่าของสองอาร์กิวเมนต์ x และ y -
cmp(x, y)
ค่าที่ส่งคืนคือ −
จำนวนลบถ้า x น้อยกว่า y
ศูนย์ถ้า x เท่ากับ y
จำนวนบวกถ้า x มากกว่า y
โดยทั่วไปแล้วฟังก์ชัน cmp() ในตัวจะส่งกลับเฉพาะค่า -1, 0 หรือ 1 อย่างไรก็ตาม มีที่อื่นๆ ที่คาดหวังฟังก์ชันที่มีลำดับการเรียกเหมือนกัน และฟังก์ชันเหล่านั้นอาจส่งคืนค่าอื่นๆ ทางที่ดีควรสังเกตเฉพาะสัญญาณของผลลัพธ์เท่านั้น
>>> cmp(2,8) -1 >>> cmp(6,6) 0 >>> cmp(4,1) 1 >>> cmp('stackexchange', 'stackoverflow') -1
เมธอด cmp() เปรียบเทียบองค์ประกอบของสองรายการ
ไวยากรณ์
cmp(list1, list2)
หากองค์ประกอบเป็นประเภทเดียวกัน ให้ดำเนินการเปรียบเทียบและส่งคืนผลลัพธ์ หากองค์ประกอบเป็นคนละประเภทกัน ให้ตรวจดูว่าเป็นตัวเลขหรือไม่
หากเป็นตัวเลข ให้บังคับเป็นตัวเลขหากจำเป็น แล้วเปรียบเทียบ
หากองค์ประกอบใดองค์ประกอบหนึ่งเป็นตัวเลข องค์ประกอบอื่นจะเป็น "ขนาดใหญ่" (ตัวเลขคือ "น้อยที่สุด")
มิฉะนั้น ประเภทจะถูกจัดเรียงตามตัวอักษรตามชื่อ
ถ้าเราไปถึงจุดสิ้นสุดของรายการใดรายการหนึ่ง รายการที่ยาวกว่าคือ "ใหญ่กว่า" หากเราใช้ทั้งสองรายการและใช้ข้อมูลร่วมกัน ผลลัพธ์จะเท่ากัน ซึ่งหมายความว่า 0 จะถูกส่งคืน
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงการใช้งานเมธอด cmp()
list1, list2 = [456, 'xyz'], [789, 'abc'] print cmp(list1, list2) print cmp(list2, list1) list3 = list2 + [896]; print cmp(list2, list3)
ผลลัพธ์
เมื่อเรารันโปรแกรมด้านบน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
-1 1 -1