บทความนี้สาธิตวิธีแปลงสตริงยาวให้กลายเป็นเมทริกซ์ (รายการของรายการ) โดยแต่ละแถวมีความยาว K ตัวอักษร
โค้ดตัวอย่าง
def convert_string_to_matrix(my_string, k):
"""
แปลงสตริงเป็นเมทริกซ์ K ตัวอักษรต่อแถว
"""
result = []
for i in range(0, len(my_string), k):
chunk = my_string[i:i+k]
result.append(list(chunk))
return result
# ทดสอบ
my_string = "PythonCode&Learn&ObjectOriented"
K = 3
print(f"สตริงต้นฉบับ: {my_string}")
print(f"ค่า K: {K}")
print("ผลลัพธ์:")
matrix = convert_string_to_matrix(my_string, K)
for row in matrix:
print(' '.join(row))
ผลลัพธ์
สตริงต้นฉบับ: PythonCode&Learn&ObjectOriented
ค่า K: 3
ผลลัพธ์:
P y t
h o n
C o d
e & L
e a r
n & O
b j e
c t O
r i e
n t e
d
อธิบายโค้ด
- ใช้
range(0, len(my_string), k)เพื่อเลื่อนดัชนีทีละ K ตัว my_string[i:i+k]ตัดสตริงยาว K ตัวอักษร (Slicing)list(chunk)แปลงสตริงสั้นเป็นลิสต์ของตัวอักษร- เก็บลิสต์แต่ละอันไว้ในลิสต์หลัก (Matrix)
เวอร์ชันสั้น (List Comprehension)
def convert_string_to_matrix_v2(my_string, k):
return [list(my_string[i:i+k]) for i in range(0, len(my_string), k)]
# ใช้งาน
matrix = convert_string_to_matrix_v2("PythonCode&Learn&ObjectOriented", 3)
for row in matrix:
print(' '.join(row))
การประยุกต์ใช้
เทคนิคนี้มีประโยชน์ใน:
- การจัดรูปแบบข้อความสำหรับแสดงผล
- การเตรียมข้อมูลสำหรับอัลกอริทึมบางประเภท (เช่น Hill Cipher)
- การแบ่งข้อมูลขนาดใหญ่เป็นชิ้นเล็กๆ (Chunking)