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

Python – แทนที่ส่วนต้นของลิสต์ (Prefix Substitution)

บทความนี้สาธิตวิธีแทนที่ส่วนต้น (Prefix) ของลิสต์หนึ่งด้วยลิสต์อีกอันหนึ่ง โดยใช้ Slicing และ len()

โค้ดตัวอย่าง

my_list_1 = [15, 44, 82]
my_list_2 = [29, 77, 19, 44, 26, 18]

print(f"ลิสต์ 1: {my_list_1}")
print(f"ลิสต์ 2: {my_list_2}")

# เรียงลำดับทั้งสอง (ตัวเลือก)
my_list_1.sort()
my_list_2.sort()
print(f"ลิสต์ 1 เรียงแล้ว: {my_list_1}")
print(f"ลิสต์ 2 เรียงแล้ว: {my_list_2}")

# แทนที่ Prefix: เอาลิสต์ 1 ทั้งหมด + ส่วนท้ายของลิสต์ 2 (เริ่มจาก index = len(list1))
my_result = my_list_1 + my_list_2[len(my_list_1):]

print(f"\nผลลัพธ์: {my_result}")

ผลลัพธ์

ลิสต์ 1: [15, 44, 82]
ลิสต์ 2: [29, 77, 19, 44, 26, 18]
ลิสต์ 1 เรียงแล้ว: [15, 44, 82]
ลิสต์ 2 เรียงแล้ว: [18, 19, 26, 29, 44, 77]
ผลลัพธ์: [15, 44, 82, 29, 44, 77]

อธิบาย Logic

my_list_2[len(my_list_1):]
# len(my_list_1) = 3
# my_list_2[3:] = ตั้งแต่ Index 3 ถึงสุด = [29, 44, 77]
# ผลลัพธ์ = [15, 44, 82] + [29, 44, 77] = [15, 44, 82, 29, 44, 77]

การประยุกต์ใช้

  • การรวมข้อมูลที่มีส่วนหัว (Header) เหมือนกัน
  • การอัปเดต Cache: เก็บ Prefix ไว้ แทนที่ Suffix ใหม่
  • การสร้าง Versioning: เก็บ Base version + Delta

กรณีทั่วไป: แทนที่ N ตัวแรก

def replace_prefix(source, replacement, n):
    """แทนที่ N ตัวแรกของ source ด้วย replacement"""
    return replacement + source[n:]

# ตัวอย่าง
original = [1, 2, 3, 4, 5, 6]
new_prefix = [9, 9]
result = replace_prefix(original, new_prefix, 2)
print(result)  # [9, 9, 3, 4, 5, 6]