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

ความถี่ของแต่ละตัวอักษรในสตริงใน Python

การประมวลผลข้อความกลายเป็นสาขาสำคัญใน machine learning และ AI Python รองรับสาขานี้ด้วยเครื่องมือและไลบรารีมากมาย ในบทความนี้เราจะดูวิธีหาจำนวนครั้งที่เกิดขึ้นของแต่ละตัวอักษรในสตริงที่กำหนด

ด้วย Counter

เมธอด Counter นับจำนวนครั้งที่องค์ประกอบเกิดขึ้นใน iterable ดังนั้นจึงใช้ได้โดยตรงโดยส่งสตริงที่ต้องการเข้าไป

ตัวอย่าง

from collections import Counter
# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
for keys in strA:
    res[keys] = res.get(keys, 0) + 1
# Result
print("Frequency of each character :\n ", res)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given String: timeofeffort
Frequency of each character : {'t': 2, 'i': 1, 'm': 1, 'e': 2, 'o': 2, 'f': 3, 'r': 1}

ด้วย get()

เราสามารถจัดการสตริงเป็นพจนานุกรมและนับคีย์สำหรับแต่ละตัวอักษรด้วย get() ในลูป for

ตัวอย่าง

# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
for keys in strA:
    res[keys] = res.get(keys, 0) + 1
# Result
print("Frequency of each character :\n ", res)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given String: timeofeffort
Frequency of each character : {'t': 2, 'i': 1, 'm': 1, 'e': 2, 'o': 2, 'f': 3, 'r': 1}

ด้วย set

เซตใน Python เก็บองค์ประกอบที่ไม่ซ้ำกัน ดังนั้นเราสามารถใช้ได้อย่างชาญฉลาดโดยนับจำนวนครั้งที่ตัวอักษรเดียวกันถูกพบซ้ำๆ เมื่อวนลูปผ่านสตริงเป็น iterable

ตัวอย่าง

# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
res = {n: strA.count(n) for n in set(strA)}
# Result
print("Frequency of each character :\n ", res)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given String: timeofeffort
Frequency of each character : {'f': 3, 'r': 1, 'm': 1, 'o': 2, 'i': 1, 't': 2, 'e': 2}