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

โปรแกรม Python นับคำที่แตกต่างและนับความถี่ของคำเหล่านั้น


สมมติว่าเรามีรายการคำ คำเหล่านี้อาจเกิดขึ้นหลายครั้ง เราต้องแสดงความถี่ของคำเหล่านี้และนับว่ามีคำที่แตกต่างกันกี่คำ

ดังนั้น หากอินพุตเหมือนกับคำ =["หนังสือ" "เสียง" "ภาษา" "คอมพิวเตอร์" "หนังสือ" "ภาษา"] ผลลัพธ์จะเป็น (4, '2 1 2 1') เพราะมีคำที่แตกต่างกันสี่คำ คำแรกและคำที่สามเกิดขึ้นสองครั้ง

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • d:=คำสั่ง OrderedDict เพื่อจัดเก็บรายการตามลำดับการแทรก
  • สำหรับแต่ละคำ ให้ทำ
    • ถ้า w อยู่ใน d แล้ว
      • d[w] :=d[w] + 1
    • มิฉะนั้น
      • d[w] :=1
  • ขนาดของรายการคีย์ทั้งหมดใน d และรวมค่าทั้งหมดจาก d ลงในสตริงแล้วส่งคืน

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

from collections import OrderedDict

def solve(words):
   d=OrderedDict()
   for w in words:
      if w in d:
         d[w] += 1
      else:
         d[w] = 1
   return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()])

words = ["Book", "Sound", "Language", "Computer", "Book", "Language"]
print(solve(words))

อินพุต

["Book", "Sound", "Language", "Computer", "Book", "Language"]

ผลลัพธ์

(4, '2 1 2 1')