0Pricing
Python Academy · บทเรียน

Counter

นับรายการได้อย่างง่ายดาย

Counter เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวนับคืออะไร

Counter เป็นคลาสย่อยของพจนานุกรมจากโมดูล collections ที่สร้างขึ้นสำหรับนับจำนวน คุณส่งรายการให้ แล้วตัวนับจะนับว่ารายการแต่ละรายการปรากฏกี่ครั้ง

นำเข้าโดยใช้ from collections import Counter

from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'a'])
print(c)

การนับอักขระ

ส่งอ็อบเจ็กต์ใด ๆ ที่วนซ้ำได้ รวมถึงสตริง แล้ว Counter จะนับสมาชิกแต่ละตัว สตริงจะถูกนับทีละอักขระ

from collections import Counter
c = Counter('mississippi')
print(c)

การค้นหาจำนวน

เข้าถึงจำนวนโดยใช้คีย์แบบเดียวกับพจนานุกรม หากไม่มีคีย์นั้น จะคืนค่า 0 แทนการส่งข้อผิดพลาด KeyError ซึ่งเป็นความแตกต่างที่มีประโยชน์จากพจนานุกรมทั่วไป

from collections import Counter
c = Counter('banana')
print(c['a'])
print(c['z'])

รายการที่พบบ่อยที่สุด

.most_common(n) จะคืนค่ารายการ n อันดับแรกเป็นคู่ (รายการ, จำนวนครั้ง) โดยเรียงจากความถี่มากไปน้อย

from collections import Counter
words = ['red', 'blue', 'red', 'green', 'blue', 'red']
c = Counter(words)
print(c.most_common(2))

รายการทั้งหมดเรียงตามความถี่

เรียกใช้ .most_common() โดยไม่ส่งอาร์กิวเมนต์ เพื่อรับรายการทั้งหมดที่เรียงตามความถี่

from collections import Counter
c = Counter('aabbbcccc')
print(c.most_common())

การปรับปรุงจำนวน

เมธอด .update() จะเพิ่มจำนวนจากอ็อบเจ็กต์ที่วนซ้ำได้อีกชุดหนึ่ง แทนที่จะเขียนทับเหมือนพจนานุกรมทั่วไป

from collections import Counter
c = Counter(['a', 'b'])
c.update(['a', 'a', 'c'])
print(c)

การนับจากพจนานุกรม

คุณยังสามารถสร้าง Counter ได้โดยตรงจากการจับคู่ระหว่างรายการกับจำนวน หรือสร้างด้วยอาร์กิวเมนต์แบบระบุชื่อ

from collections import Counter
c = Counter(apples=3, pears=2)
print(c)
print(c['apples'])

การบวกตัวนับสองชุด

ตัวดำเนินการ + จะรวมตัวนับสองชุดด้วยการบวกคีย์ที่ตรงกัน รายการที่มีผลรวมเป็นศูนย์หรือติดลบจะถูกตัดออก

from collections import Counter
a = Counter(x=2, y=1)
b = Counter(x=1, z=4)
print(a + b)

การลบจำนวน

ตัวดำเนินการ - จะลบจำนวนและเก็บเฉพาะผลลัพธ์ที่เป็นบวก หากต้องการให้ผลลัพธ์ติดลบได้ ให้ใช้ .subtract()

from collections import Counter
a = Counter(x=5, y=2)
b = Counter(x=3, y=4)
print(a - b)

ผลรวมของจำนวนทั้งหมด

หาผลรวมของจำนวนทั้งหมดด้วย sum(c.values()) ซึ่งจะบอกว่ามีรายการถูกนับทั้งหมดกี่รายการ

from collections import Counter
c = Counter('mississippi')
print('Total letters:', sum(c.values()))

การแสดงรายการสมาชิก

.elements() จะคืนค่าตัววนซ้ำที่ทำให้สมาชิกแต่ละตัวปรากฏซ้ำตามจำนวนของมัน ใช้ list() ครอบเพื่อดูสมาชิกทั้งหมด

from collections import Counter
c = Counter(a=2, b=1, c=3)
print(sorted(c.elements()))

ตรวจสอบความเข้าใจ

กำหนดให้ c = Counter('hello') แล้ว c['x'] จะคืนค่าอะไร

ทบทวน: Counter

คุณได้เรียนรู้ว่า Counter:

  • นับรายการจากอ็อบเจ็กต์ที่วนซ้ำได้ทุกชนิด รวมถึงสตริง
  • คืนค่า 0 สำหรับคีย์ที่ไม่มี แทนการส่งข้อผิดพลาด
  • มี .most_common(n) สำหรับจัดอันดับรายการตามความถี่
  • รองรับ +, -, .update() และ .elements() สำหรับงานนับจำนวน
from collections import Counter
votes = ['yes', 'no', 'yes', 'yes', 'no']
print(Counter(votes).most_common(1))

คำถามที่พบบ่อย

บทเรียน “Counter” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Counter” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Counter”

นับรายการได้อย่างง่ายดาย คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “Counter” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple และ OrderedDict
← กลับไปที่ Python Academy