Python ใช้ count() แทน for loop ในการนับจำนวน

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

Sakana
PHP Super Member
PHP Super Member
โพสต์: 307
ลงทะเบียนเมื่อ: 16/06/2025 9:38 am

Python ใช้ count() แทน for loop ในการนับจำนวน

โพสต์ที่ยังไม่ได้อ่าน โดย Sakana »

ในโลกของการเขียนโปรแกรม การจัดการและวิเคราะห์ข้อมูลเป็นหัวใจสำคัญ และบ่อยครั้งที่เราต้องการทราบว่าข้อมูลบางอย่างปรากฏซ้ำกี่ครั้งในชุดข้อมูลที่เรามี ไม่ว่าจะเป็นการนับจำนวนตัวอักษรในประโยค, การหาว่าสินค้าชิ้นไหนถูกสั่งซื้อไปแล้วกี่ครั้ง, หรือแม้แต่การระบุความถี่ของเหตุการณ์บางอย่างในบันทึกข้อมูล Python มีเครื่องมือที่ทรงพลังและใช้งานง่ายสำหรับงานนี้ นั่นคือเมธอด count() บทความนี้จะพาคุณไปสำรวจว่า count() คืออะไร ทำงานอย่างไรในบริบทข้อมูลประเภทต่างๆ และที่สำคัญที่สุดคือประโยชน์ที่คุณจะได้รับเมื่อนำไปใช้ ซึ่งจะช่วยให้โค้ดของคุณมีประสิทธิภาพและอ่านง่ายขึ้น

เมธอด count() เป็นเมธอดที่มาพร้อมกับประเภทข้อมูลพื้นฐานหลายชนิดใน Python ทำให้คุณสามารถนับจำนวนครั้งที่ค่าเฉพาะปรากฏอยู่ในลำดับข้อมูล (sequence) นั้นๆ ได้อย่างสะดวกสบาย มาดูกันว่ามันทำงานอย่างไรในแต่ละบริบท:

1. string.count(): นับตัวอักษรหรือข้อความย่อยในสตริง
เมื่อคุณมีข้อความยาวๆ และต้องการทราบว่าตัวอักษรหรือคำบางคำปรากฏกี่ครั้ง เมธอด count() ของสตริงคือคำตอบที่ดีที่สุด

syntax

โค้ด: เลือกทั้งหมด

string.count(value, start=0, end=len(string))
- value: สิ่งที่คุณต้องการนับ ไม่ว่าจะเป็นตัวอักษรเดียวหรือข้อความย่อย
- start (ไม่จำเป็น): ตำแหน่งเริ่มต้นที่คุณต้องการให้เริ่มนับ
- end (ไม่จำเป็น): ตำแหน่งสิ้นสุดที่คุณต้องการให้หยุดนับ
ตัวอย่าง

โค้ด: เลือกทั้งหมด

text = "การเขียนโปรแกรม Python เป็นเรื่องสนุกและ Python มีประโยชน์มาก"
# นับจำนวน 'ญ'
print(f"จำนวน 'ญ': {text.count('ญ')}") 
# นับจำนวน 'Python'
print(f"จำนวน 'Python': {text.count('Python')}") 
# นับจำนวน 'ป' ในช่วงตำแหน่งที่กำหนด (ตั้งแต่ตำแหน่งที่ 5 ถึง 20)
print(f"จำนวน 'ป' ในช่วง 5-20: {text.count('ป', 5, 20)}") 
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (1.99 KiB) Viewed 49 times
2. list.count(): นับสมาชิกในลิสต์
ลิสต์เป็นโครงสร้างข้อมูลที่ใช้บ่อยที่สุดใน Python การนับจำนวนครั้งที่สมาชิกซ้ำกันในลิสต์เป็นสิ่งจำเป็นสำหรับการวิเคราะห์ข้อมูลและจัดการคอลเลกชัน
syntax

โค้ด: เลือกทั้งหมด

list.count(value)
- value: สมาชิกที่คุณต้องการนับจำนวนครั้งที่ปรากฏในลิสต์

ตัวอย่าง:

โค้ด: เลือกทั้งหมด

student_scores = [85, 70, 92, 85, 78, 85, 90]
# นับจำนวนนักเรียนที่ได้ 85 คะแนน
print(f"จำนวนนักเรียนที่ได้ 85 คะแนน: {student_scores.count(85)}") 
# นับว่ามีคะแนน 100 หรือไม่
print(f"จำนวนนักเรียนที่ได้ 100 คะแนน: {student_scores.count(100)}") 
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (2.16 KiB) Viewed 49 times
3. tuple.count(): นับสมาชิกในทูเพิล
ทูเพิลก็เป็นลำดับข้อมูลคล้ายลิสต์ แต่ไม่สามารถเปลี่ยนแปลงได้ (immutable) เมธอด count() ในทูเพิลทำงานเหมือนกับในลิสต์ทุกประการ
syntax

โค้ด: เลือกทั้งหมด

tuple.count(value)
- value: สมาชิกที่คุณต้องการนับจำนวนครั้งที่ปรากฏในทูเพิล
ตัวอย่าง

โค้ด: เลือกทั้งหมด

coordinates = (10, 20, 30, 20, 40, 20)
# นับจำนวน 20 ในทูเพิล
print(f"จำนวน 20 ในพิกัด: {coordinates.count(20)}") 
# นับจำนวน 50 (ซึ่งไม่มีในทูเพิล)
print(f"จำนวน 50 ในพิกัด: {coordinates.count(50)}")
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (1.47 KiB) Viewed 49 times
สรุป
การทำความเข้าใจและใช้เมธอด count() อย่างเชี่ยวชาญจะมอบประโยชน์มากมายให้กับคุณ
- โค้ดที่อ่านง่ายและกระชับ: แทนที่จะเขียน for loop ซับซ้อนเพื่อวนนับทีละรายการ count() ช่วยให้คุณทำสิ่งเดียวกันได้ในโค้ดเพียงบรรทัดเดียว ทำให้โค้ดของคุณสะอาดและเข้าใจง่ายขึ้นมาก
- เพิ่มประสิทธิภาพการทำงาน: เมธอด count() ถูกพัฒนามาอย่างดีและมักจะทำงานได้เร็วกว่าการเขียนลูปด้วยตัวเอง โดยเฉพาะอย่างยิ่งเมื่อทำงานกับชุดข้อมูลขนาดใหญ่ เพราะถูกเขียนด้วยภาษา C ภายใน ทำให้การทำงานรวดเร็วและมีประสิทธิภาพ
- ลดข้อผิดพลาด: การใช้เมธอด built-in ช่วยลดโอกาสเกิดข้อผิดพลาดจากการเขียนโค้ดเอง เช่น การตั้งค่าเงื่อนไขผิดพลาดในการวนลูป
- เครื่องมือสำหรับการวิเคราะห์ข้อมูลเบื้องต้น: count() เป็นเครื่องมือแรกๆ ที่คุณควรนึกถึงเมื่อต้องการทำความเข้าใจความถี่ของข้อมูลในชุดข้อมูลของคุณ ไม่ว่าจะเป็นการนับคะแนนสอบ, คำศัพท์, หรือรายการสินค้า
ด้วยความง่ายในการใช้งานและประโยชน์ที่หลากหลาย count() จึงเป็นเมธอดพื้นฐานที่นักพัฒนา Python ทุกคนควรทำความเข้าใจและนำไปประยุกต์ใช้เพื่อทำให้โค้ดของคุณมีประสิทธิภาพและจัดการข้อมูลได้ดีมากยิ่งขึ้น

อ้างอิง
- viewtopic.php?t=38062
- https://www.mindphp.com/คู่มือ/73-คืออะ ... ออะไร.html
- https://www.mindphp.com/บทเรียนออนไลน์/ ... ython.html
- https://www.mindphp.com/บทเรียนออนไลน์/ ... mming.html
- viewtopic.php?t=90492
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 2