Python จำนวนสตริง () พร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

Python เมธอด `string count()` เป็นเมธอดในตัวที่ใช้สำหรับส่งคืนจำนวนครั้งที่อักขระหรือสตริงย่อยปรากฏในสตริง อาร์กิวเมนต์เสริม `start` และ `end` จะจำกัดการค้นหาให้เหลือเฉพาะส่วนใดส่วนหนึ่งของข้อความ

  • 🔢 ผลตอบแทน: ฟังก์ชัน count() ส่งคืนค่าจำนวนเต็ม ซึ่งก็คือจำนวนจุดที่ไม่ทับซ้อนกันping จำนวนครั้ง หรือ 0 เมื่อไม่มีองค์ประกอบนั้นอยู่
  • 🎯 จุดเริ่มต้นและจุดสิ้นสุด: ดัชนีเริ่มต้นและสิ้นสุดที่เป็นตัวเลือกจะจำกัดการนับให้เหลือเฉพาะส่วนที่เลือกของสตริงเท่านั้น
  • 🔠 ความไวของตัวพิมพ์: การนับนั้นคำนึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ดังนั้นจึงต้องปรับให้เป็นมาตรฐานด้วย lower() หรือ upper() ก่อนเปรียบเทียบข้อความที่มีตัวพิมพ์ผสมกัน
  • 📋 รายการและทูเพิล: เมธอด count() ยังนับจำนวนครั้งที่องค์ประกอบปรากฏในลิสต์หรือทูเปิลอีกด้วย
  • 🔁 ส่วนที่ทับซ้อนกัน: count() ข้ามส่วนที่ทับซ้อนกันping ตรงกัน ดังนั้นการใช้ find() ในลูปหรือนิพจน์ปกติจึงสามารถจัดการกรณีเหล่านั้นได้
  • 🤖 ความช่วยเหลือจากเอไอ: ผู้ช่วยเขียนโค้ด AI สร้างตรรกะ count() และนับความถี่ของโทเค็นสำหรับแมชชีนเลิร์นนิงและ NLP

Python จำนวนสตริง()

ความหมายของ Python นับจำนวนสตริง()?

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

ไวยากรณ์สำหรับ Python จำนวนสตริง()

การขอ Python ฟังก์ชัน string count() ใช้ไวยากรณ์ดังต่อไปนี้:

string.count(char or substring, start, end)

พารามิเตอร์

  • อักขระหรือสตริงย่อย: อักขระเดี่ยวหรือสตริงย่อยที่คุณต้องการค้นหาในสตริงที่กำหนด ฟังก์ชัน count() จะส่งคืนจำนวนครั้งที่อักขระนั้นปรากฏในสตริง
  • เริ่มต้น: (ไม่บังคับ) ระบุหมายเลขดัชนีเริ่มต้นที่จะใช้ในการค้นหา หากไม่ได้ระบุ จะเริ่มต้นจาก 0 ตัวอย่างเช่น เมื่อต้องการค้นหาอักขระจากตรงกลางสตริง คุณสามารถระบุค่าเริ่มต้นให้กับฟังก์ชันนับได้
  • จบ: (ตัวเลือกเสริม) ระบุตำแหน่งดัชนีสุดท้ายที่การค้นหาจะสิ้นสุด หากไม่ได้ระบุ ระบบจะค้นหาจนถึงจุดสิ้นสุดของสตริง ตัวอย่างเช่น หากคุณไม่ต้องการสแกนสตริงทั้งหมดและต้องการจำกัดการค้นหาไว้ที่จุดใดจุดหนึ่ง คุณสามารถระบุค่า `end` ในฟังก์ชัน `count` ได้

ราคาย้อนกลับ

เมธอด `count()` จะส่งคืนค่าจำนวนเต็ม ซึ่งก็คือจำนวนขององค์ประกอบที่กำหนดในสตริงที่กำหนด หากไม่พบค่าดังกล่าวในสตริงที่กำหนด จะส่งคืนค่า 0

ตัวอย่างที่ 1: วิธีการนับบนสตริง

ตัวอย่างต่อไปนี้แสดงการทำงานของฟังก์ชัน count() กับสตริง

str1 = "Hello World"
str_count1 = str1.count('o')  # counting the character “o” in the givenstring
print("The count of 'o' is", str_count1)

str_count2 = str1.count('o', 0,5)
print("The count of 'o' usingstart/end is", str_count2)

Output:

The count of 'o' is 2
The count of 'o' usingstart/end is 1

ตัวอย่างที่ 2: นับจำนวนครั้งที่ตัวอักษรปรากฏในสตริงที่กำหนด

ตัวอย่างต่อไปนี้แสดงการปรากฏของอักขระในสตริงที่กำหนด รวมถึงการใช้ดัชนีเริ่มต้นและดัชนีสิ้นสุดด้วย

str1 = "Welcome to Guru99 Tutorials!"
str_count1 = str1.count('u')  # counting the character “u” in the given string
print("The count of 'u' is", str_count1)

str_count2 = str1.count('u', 6,15)
print("The count of 'u' usingstart/end is", str_count2)

Output:

The count of 'u' is 3
The count of 'u' usingstart/end is 2

ตัวอย่างที่ 3: นับจำนวนครั้งที่สตริงย่อยปรากฏในสตริงที่กำหนด

ตัวอย่างต่อไปนี้แสดงการปรากฏของสตริงย่อยในสตริงที่กำหนด รวมถึงการใช้ดัชนีเริ่มต้นและดัชนีสิ้นสุดด้วย

str1 = "Welcome to Guru99 - Free Training Tutorials and Videos for IT Courses"
str_count1 = str1.count('to') # counting the substring “to” in the givenstring
print("The count of 'to' is", str_count1)
str_count2 = str1.count('to', 6,15)
print("The count of 'to' usingstart/end is", str_count2)

Output:

The count of 'to' is 2
The count of 'to' usingstart/end is 1

Python เมธอด count() บนลิสต์

เมธอด count() ไม่ได้จำกัดเฉพาะสตริงเท่านั้น Python นอกจากนี้ ลิสต์และทูเพิลยังมีเมธอด `count()` ที่ส่งคืนจำนวนครั้งที่องค์ประกอบเฉพาะปรากฏในลำดับ ซึ่งแตกต่างจากเวอร์ชันสตริง เมธอด `list.count()` และ `tuple.count()` รับเฉพาะองค์ประกอบที่ต้องการค้นหาเท่านั้น และไม่รับอาร์กิวเมนต์ดัชนีเริ่มต้นหรือสิ้นสุด

fruits = ['apple', 'banana', 'apple', 'grape', 'apple']
print(fruits.count('apple'))  # counts how many times 'apple' appears

numbers = (1, 2, 2, 3, 2)
print(numbers.count(2))  # count() also works on a tuple

Output:

3
3

เนื่องจากเมธอด `count()` ใช้ได้ทั้งกับสตริงและลำดับ ดังนั้นชื่อเมธอดเดียวกันจึงใช้ได้ไม่ว่าคุณจะนับจำนวนอักขระในข้อความหรือรายการที่ซ้ำกันในคอลเลกชันก็ตาม

วิธีการนับส่วนที่ทับซ้อนกันping เหตุการณ์ใน Python

เมธอด count() จะนับเฉพาะส่วนที่ไม่ทับซ้อนกันเท่านั้นping จำนวนครั้งที่พบสตริงย่อย เมื่อการจับคู่สามารถทับซ้อนกันได้ ฟังก์ชัน count() จะรายงานผลลัพธ์น้อยกว่าที่คุณคาดหวัง ตัวอย่างเช่น การนับ “aa” ภายใน “aaaa” จะคืนค่า 2 แทนที่จะเป็น 3 เนื่องจาก count() จะเลื่อนผ่านการจับคู่แต่ละรายการที่พบ

text = "aaaa"
print(text.count("aa"))          # non-overlapping count is 2

import re
overlaps = len(re.findall("(?=(aa))", text))
print(overlaps)                  # overlapping count is 3

Output:

2
3

นับส่วนที่ทับซ้อนกันping หากต้องการค้นหาผลลัพธ์ที่ตรงกัน ให้ใช้โมดูล re ร่วมกับการตรวจสอบล่วงหน้า (lookahead assertion) หรือวนลูปด้วยเมธอด find() โดยเลื่อนตำแหน่งการค้นหาไปทีละตัวอักษรหลังจากพบผลลัพธ์ที่ตรงกันแต่ละครั้ง

» เรียนรู้เพิ่มเติมเกี่ยวกับ Python วิธีการสตริง

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

ใช่แล้ว ฟังก์ชัน `count()` จะจับคู่ตัวอักษรอย่างแม่นยำ ดังนั้น `"Hello".count("h")` จะคืนค่า 0 ในขณะที่ `"Hello".count("H")` จะคืนค่า 1 หากต้องการนับแบบไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก ให้แปลงสตริงด้วย `lower()` หรือ `upper()` ก่อน

ฟังก์ชัน `count()` จะคืนค่า 0 เมื่ออักขระหรือสตริงย่อยที่ต้องการไม่ปรากฏในสตริง ฟังก์ชันนี้จะไม่แสดงข้อผิดพลาดใดๆ สำหรับองค์ประกอบที่หายไป ซึ่งทำให้ปลอดภัยในการใช้งานโดยตรงภายในเงื่อนไขและการเปรียบเทียบ

การส่งสตริงว่างจะคืนค่าความยาวของสตริงบวกหนึ่ง เนื่องจาก Python นับจำนวนช่องว่างที่ตรงกันระหว่างตัวอักษรแต่ละตัวและที่ปลายทั้งสองข้าง สำหรับ “abc” ผลลัพธ์คือ 4

ไม่ เมธอด count() รับอักขระหรือสตริงย่อยได้เพียงหนึ่งตัวต่อการเรียกใช้หนึ่งครั้ง หากต้องการนับจำนวนอักขระหลายตัวพร้อมกัน ให้ใช้ collections.Counter ซึ่งจะส่งคืนความถี่ของอักขระทุกตัวในสตริงในการประมวลผลครั้งเดียว

ฟังก์ชัน `count()` จะคืนค่าจำนวนครั้งที่สตริงย่อยปรากฏ ในขณะที่ฟังก์ชัน `find()` จะคืนค่าดัชนีของการปรากฏครั้งแรก หรือ -1 หากไม่พบสตริงย่อยนั้น ใช้ `count()` สำหรับหาผลรวม และใช้ `find()` สำหรับค้นหาตำแหน่ง

ใช่แล้ว ฟังก์ชัน `count()` ถูกเขียนด้วยภาษา C ดังนั้นมันจึงสแกนสตริงได้เร็วกว่าฟังก์ชันที่เทียบเท่ากันมาก Python ลูป for ควรใช้ count() แทน เพราะอ่านง่ายและเร็วกว่า เมื่อต้องการตรวจสอบเฉพาะส่วนที่ไม่ทับซ้อนกันเท่านั้นping ยอดรวม

ผู้ช่วย AI สร้างโค้ด count() และ collections.Counter จากข้อความภาษาธรรมดา ในการเรียนรู้ของเครื่องและ NLP การนับความถี่ของคำหรือโทเค็นจะสร้างคุณลักษณะต่างๆ เช่น เวกเตอร์ bag-of-words ที่โมเดลใช้สำหรับการจำแนกประเภท

ใช่แล้ว GitHub Copilot จะเติมข้อความอัตโนมัติสำหรับการเรียกใช้ฟังก์ชัน count() จากข้อความอธิบายสั้นๆ ที่บอกถึงเป้าหมายของคุณ เครื่องมือ AI ของ Agentic ทำได้มากกว่านั้น โดยจะเขียนตรรกะการนับ เพิ่มอาร์กิวเมนต์ start และ end และทำการทดสอบให้คุณด้วย

สรุปโพสต์นี้ด้วย: