บทนำ
การแทนที่ element ใน tuple ที่ไม่ใช่ค่าสูงสุด (max) และไม่ใช่ค่าต่ำสุด (min) ด้วยค่าที่กำหนด (K) โดยใช้ลูปตรวจสอบแต่ละค่า
ตัวอย่างโค้ด
my_tuple = (25, 56, 78, 91, 23, 11, 0, 99, 32, 10)
K = 5
print("Tuple เดิม:", my_tuple)
print(f"K = {K}")
max_val = max(my_tuple)
min_val = min(my_tuple)
result = tuple(K if x != max_val and x != min_val else x for x in my_tuple)
print("ค่า Max:", max_val)
print("ค่า Min:", min_val)
print("หลังแทนที่:", result)
ผลลัพธ์
Tuple เดิม: (25, 56, 78, 91, 23, 11, 0, 99, 32, 10) K = 5 ค่า Max: 99 ค่า Min: 0 หลังแทนที่: (5, 5, 5, 5, 5, 5, 0, 99, 5, 5)
คำอธิบาย
max(my_tuple)และmin(my_tuple)หาค่าสูงสุด/ต่ำสุด- Generator expression ตรวจสอบแต่ละ element
- ถ้าไม่ใช่ max และไม่ใช่ min → ใช้ K, ไม่เช่นนั้น → เก็บค่าเดิม
tuple(...)แปลงกลับเป็น tuple
กรณีมีค่า Max/Min ซ้ำหลายตัว
t = (5, 1, 5, 3, 1, 5) K = 0 max_v, min_v = max(t), min(t) result = tuple(K if x != max_v and x != min_v else x for x in t) print(result) # (5, 1, 5, 0, 1, 5) - ทุก 5 และ 1 ถูกเก็บไว้
ประสิทธิภาพ
คำนวณ max/min ครั้งเดียว แล้ววนลูป O(n) รวม O(n) ทั้งหมด