Saya refactoring beberapa kode lama saya dan menemukan ini:
alist.sort(cmp_items)
def cmp_items(a, b):
if a.foo > b.foo:
return 1
elif a.foo == b.foo:
return 0
else:
return -1
Kode berfungsi (dan saya menulisnya sekitar 3 tahun yang lalu!) Tetapi saya tidak dapat menemukan hal ini didokumentasikan di mana pun di dokumen Python dan semua orang menggunakannya sorted()
untuk mengimplementasikan penyortiran khusus. Adakah yang bisa menjelaskan mengapa ini berhasil?
sorted()
dansort()
menawarkan pengurutan khusus dengan cara yang hampir sama, modulo perbedaan dalam konvensi panggilan.