Lưu ý: cmp() chỉ có trong Python 2. Python 3 đã loại bỏ, thay bằng rich comparison (__lt__, __eq__, v.v.).
Hàm cmp(x, y) (Python 2)
- Trả về số âm nếu
x < y - Trả về 0 nếu
x == y - Trả về số dương nếu
x > y
>>> cmp(2, 8) # -1
>>> cmp(6, 6) # 0
>>> cmp(4, 1) # 1
>>> cmp('stackexchange', 'stackoverflow') # -1
So sánh list với cmp()
list1, list2 = [456, 'xyz'], [789, 'abc'] print(cmp(list1, list2)) # -1 print(cmp(list2, list1)) # 1 list3 = list2 + [896] print(cmp(list2, list3)) # -1 (list ngắn hơn "nhỏ hơn")
Python 3: Thay thế
# Thay vì cmp(a, b): (a > b) - (a < b) # Trả về -1, 0, 1 # Hoặc dùng functools.cmp_to_key cho sorted() from functools import cmp_to_key sorted_list = sorted(items, key=cmp_to_key(custom_compare))