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

Python – แปลงสตริงเป็นเมทริกซ์ K ตัวอักษรต่อแถว

บทความนี้สาธิตวิธีแปลงสตริงยาวให้กลายเป็นเมทริกซ์ (รายการของรายการ) โดยแต่ละแถวมีความยาว 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)