Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

กำหนดค่าเฉพาะให้ Element ที่ไม่ใช่ Max/Min ใน Tuple ด้วย Python

บทนำ

การแทนที่ 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) ทั้งหมด