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

Run Length Encoding ใน Python

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีสร้าง Run-length encoding ใน Python โดยให้สตริงหนึ่ง ให้คืนสตริงใหม่ที่มี char และ frequency

ตัวอย่างเช่น สตริง tutorialspoint จะถูกเข้ารหัสเป็น t3u1o2r1i2a1l1s1p1n1 ลำดับคือ char+frequency ทุกตัว รวมเข้าด้วยกันและคืนค่า ดูขั้นตอนด้านล่างเพื่อเขียนโปรแกรม

  • เขียนฟังก์ชันชื่อ run_length_encoding

  • เริ่มต้นพจนานุกรมด้วย OrderedDict เพื่อให้ได้จำนวนเริ่มต้นของ char เป็น 0

  • วนลูปทุกตัวอักษรของสตริงและเพิ่มจำนวนในพจนานุกรม

  • รวม char ทั้งหมดและความถี่ของพวกเขา และพิมพ์ออกมา

  • เริ่มต้นสตริงและเรียกฟังก์ชัน

ตัวอย่าง

มาดูโค้ดสำหรับข้อความข้างต้น

# นำเข้า collections
import collections

# ฟังก์ชัน
def run_length_encoding(string):
    # เริ่มต้นพจนานุกรมนับ
    count_dict = collections.OrderedDict.fromkeys(string, 0)
    # วนลูปผ่านสตริง
    for char in string:
        # เพิ่มความถี่
        count_dict[char] += 1
    # เริ่มต้นสตริงเข้ารหัสว่าง
    encoded_string = ""
    # รวม char ทั้งหมดและความถี่
    for key, value in count_dict.items():
        # รวม
        encoded_string += key + str(value)
        # พิมพ์สตริงเข้ารหัส
    print(encoded_string)

# เริ่มต้นสตริง
string = "tutorialspoint"
# เรียกฟังก์ชัน
run_length_encoding(string)

# สตริงอีกตัว
string = "aaaaaabbbbbccccccczzzzzz"
run_length_encoding(string)

ผลลัพธ์

ถ้าคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

t3u1o2r1i2a1l1s1p1n1
a6b5c7z6

สรุป

หากคุณมีข้อสงสัยในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น