Khi cần phân phối lại các giá trị sau khi cắt bỏ (trimmed), ta dùng list comprehension và toán tử /.
Ví dụ
my_list = [11, 26, 24, 75, 96, 37, 48, 29, 93]
print("Danh sách là:")
print(my_list)
key = 2
print("Giá trị key là:")
print(key)
full_sum = sum(my_list)
trimmed_list = my_list[key:len(my_list) - key]
trim_sum = sum(trimmed_list)
add_value = (full_sum - trim_sum) / len(trimmed_list)
result = [ele + add_value for ele in trimmed_list]
print("Danh sách kết quả:")
print(result)
Kết quả đầu ra
Danh sách là: [11, 26, 24, 75, 96, 37, 48, 29, 93] Giá trị key là: 2 Danh sách kết quả: [55.8, 106.8, 127.8, 68.8, 79.8]
Giải thích
- Tính tổng toàn bộ danh sách
full_sum. - Cắt bỏ
keyphần tử đầu và cuối →trimmed_list. - Tính tổng danh sách đã cắt
trim_sum. - Giá trị cần thêm vào mỗi phần tử:
(full_sum - trim_sum) / len(trimmed_list). - Dùng list comprehension cộng
add_valuevào mỗi phần tử củatrimmed_list.
Ý nghĩa: Phân bổ lại tổng giá trị bị cắt bỏ đều cho các phần tử còn lại.