เรียง list ของ ints, floats, strings, chars หรือ class ที่ implement __cmp__ ได้โดยเรียก sort บน list หากต้องการ descending ส่ง reverse=True
ตัวอย่าง
my_list = [1, 5, 2, 6, 0]
my_list.sort()
print(my_list)
my_list.sort(reverse=True)
print(my_list)
ผลลัพธ์
[0, 1, 2, 5, 6]
[6, 5, 2, 1, 0]
Tuples immutable ไม่มี in-place sort ใช้ sorted คืน sorted list หากไม่ต้องการ sort in-place ใช้ sorted แทน list.sort()
ตัวอย่าง
my_list = [1, 5, 2, 6, 0]
print(sorted(my_list))
print(sorted(my_list, reverse=True))
ผลลัพธ์
[0, 1, 2, 5, 6]
[6, 5, 2, 1, 0]
หาก list ของ objects ไม่มี __cmp__ ใช้ key argument ระบุวิธีเปรียบเทียบ เช่น list of dictionaries เรียงตาม key 'size':
ตัวอย่าง
def get_my_key(obj):
return obj['size']
my_list = [{'name': "foo", 'size': 5}, {'name': "bar", 'size': 3}, {'name': "baz", 'size': 7}]
my_list.sort(key=get_my_key)
print(my_list)
ผลลัพธ์
[{'name': 'bar', 'size': 3}, {'name': 'foo', 'size': 5}, {'name': 'baz', 'size': 7}]
เรียก function สำหรับแต่ละ entry เรียงตามค่าที่คืนมา ใช้กับ object ได้โดย return attribute