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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ