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

ตรวจสอบความถี่ของตัวอักษรในสตริงว่าต่างกันทั้งหมดหรือไม่ใน Python

ในบทความนี้เราจะมาดูวิธีหาความถี่ของแต่ละตัวอักษรในสตริงที่กำหนด จากนั้นตรวจสอบว่ามีตัวอักษรสองตัวขึ้นไปที่มีความถี่เท่ากันหรือไม่ เราจะทำในสองขั้นตอน โปรแกรมแรกจะหาความถี่ของแต่ละตัวอักษร

ความถี่ของแต่ละตัวอักษร

ที่นี่เราหาความถี่ของแต่ละตัวอักษรในอินพุตที่กำหนด เราประกาศพจนานุกรมว่าง แล้วเพิ่มตัวอักษรแต่ละตัวเป็นสตริง และกำหนดคีย์ให้แต่ละตัวอักษรเพื่อสร้างคู่คีย์-ค่าที่พจนานุกรมต้องการ

ตัวอย่าง

in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
    if k in dic1.keys():
        dic1[k] += 1
    else:
        dic1[k] = 1
print(dic1)
for k in dic1.keys():
    print(k, " repeats ", dic1[k], " time's")

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลดังนี้ −

{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
S repeats 1 time's
h repeats 2 time's
e repeats 4 time's
  repeats 3 time's
s repeats 5 time's
l repeats 4 time's
a repeats 1 time's

ความถี่ที่ไม่ซ้ำกันของแต่ละตัวอักษร

ต่อไปเราขยายโปรแกรมข้างต้นเพื่อหาความถี่ของแต่ละตัวอักษรที่ไม่ซ้ำกัน หากค่าความถี่ที่ไม่ซ้ำกันมีมากกว่าหนึ่ง เราจะสรุปได้ว่าตัวอักษรไม่ทั้งหมดมีความถี่เท่ากัน

ตัวอย่าง

in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
    if k in dic1.keys():
        dic1[k] += 1
    else:
        dic1[k] = 1
print(dic1)
u_value = set(val for udic in dic1 for val in (dic1.values()))
print("Number of Unique frequencies: ", len(u_value))
if len(u_value) == 1:
    print("All character have same frequiency")
else:
    print("The characters have different frequencies.")

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลดังนี้ −

{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
Number of Unique frequencies: 5
The characters have different frequencies.