Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python sắp xếp hàng ma trận theo tổng chênh lệch liên tiếp

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.