Ví dụ
def diff_summation_elem(row):
return sum([abs(row[index + 1] - row[index]) for index in range(0, len(row) - 1)])
my_list = [[97, 6, 47, 3], [6, 88, 3, 26], [71, 53, 34, 65], [15, 36, 5, 62]]
print("Danh sách là:")
print(my_list)
my_list.sort(key=diff_summation_elem)
print("Danh sách kết quả:")
print(my_list)
Kết quả đầu ra
Danh sách là:
[[97, 6, 47, 3], [6, 88, 3, 26], [71, 53, 34, 65], [15, 36, 5, 62]]
Danh sách kết quả:
[[71, 53, 34, 65], [15, 36, 5, 62], [97, 6, 47, 3], [6, 88, 3, 26]]
Giải thích
- Hàm
diff_summation_elem tính tổng giá trị tuyệt đối chênh lệch giữa các phần tử liên tiếp.
- Hàng 0: |6-97|+|47-6|+|3-47| = 91+41+44 = 176.
- Hàng 1: |88-6|+|3-88|+|26-3| = 82+85+23 = 190.
- Hàng 2: |53-71|+|34-53|+|65-34| = 18+19+31 = 68.
- Hàng 3: |36-15|+|5-36|+|62-5| = 21+31+57 = 109.
- Sắp xếp tăng dần: 68, 109, 176, 190.