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

Sắp xếp Tuple theo tổng số chữ số trong Python

Dùng sorted() với key là lambda tính tổng độ dài chuỗi của từng phần tử trong tuple (sau khi convert sang string).

Ví dụ

my_list = [(11, 23, 45, 678), (34, 67), (653,), (78, 99, 23, 45), (67, 43)]
print("Danh sách:", my_list)
result = sorted(my_list, key=lambda tup: sum(len(str(e)) for e in tup))
print("Sau khi sắp xếp:", result)

Kết quả

Danh sách: [(11, 23, 45, 678), (34, 67), (653,), (78, 99, 23, 45), (67, 43)]
Sau khi sắp xếp: [(653,), (34, 67), (67, 43), (78, 99, 23, 45), (11, 23, 45, 678)]

Giải thích

  • Lambda: sum(len(str(e)) for e in tup) tính tổng số chữ số của tuple.
  • sorted sắp xếp tăng dần theo key này.
  • Tuple có ít chữ số nhất (653 -> 3 chữ số) lên đầu.