Đếm số chữ số trong chuỗi Python

Trong bài đăng này, tôi sẽ giải thích cách đếm số chữ số trong một chuỗi bằng Python. Tôi sẽ giải thích cách tôi trích xuất các chữ số ra Chuỗi. Điều này phổ biến trong Miền khoa học dữ liệu

Tôi có thể đếm số chữ số bằng một vòng lặp for đơn giản. Tôi lặp qua tất cả các ký tự trong một chuỗi và kiểm tra xem đó có phải là một chữ số không. Ở bài trước Ba chữ trong python mình đã giải thích hàm isdigit rồi. Tôi cũng sử dụng chức năng này trong vấn đề này. Tôi tăng bộ đếm khi ký tự là một chữ số. Một vòng lặp for rất đơn giản

text = "I am 1 string with 2 digits"
count = 0
for char in text:
    if char.isdigit[]:
        count += 1
print["the number of digits is: "  + str[count]]

Python có khả năng hiểu danh sách. Với hàm tổng tích hợp, tôi có thể làm tương tự. Hàm sum yêu cầu một iterable làm tham số đầu vào

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]

Hàm tổng cũng có thể hoạt động trên một mảng Booleans. Giá trị True sẽ hoạt động như 1 và Sai sẽ hoạt động như 0. Xem xét ví dụ sau

result = sum[[True,True,False]]
print[result]   # This will print 2 

Điều này dẫn đến kết quả sau

text = "I am 1 string with 2 digits"
count = sum[x.isdigit[] for x in text]
print["the number of digits is: "  + str[count]]

Với biểu thức chính quy

Tôi cũng có thể sử dụng gói re. Ví dụ sau trước tiên xóa tất cả các ký tự không phải chữ số. Phần còn lại là một chuỗi chỉ có các ký tự. Điều này có nghĩa là tôi chỉ cần lấy độ dài của chuỗi để biết có bao nhiêu chữ số trong chuỗi

import re
text = "I am 1 string with 2 digits"
count = re.sub["\D", "", test_string] 
print["the number of digits is: "  + len[count]]

Gói re có chức năng findall. Ở đây chúng ta có thể nhập một biểu thức chính quy để đếm tất cả các chữ số

len[re.findall['\d', text]]

Thưởng

Là người cuối cùng, tôi cũng có thể sử dụng số lượng phương thức String tích hợp. Chỉ cần đếm tất cả các chữ số trong chuỗi và cộng các số cùng với phương thức tổng

 return sum[text.count[digit] for digit in '1234567890']

Có một số cách để đếm số chữ số trong một chuỗi bằng Python. Tôi đã cho thấy một số trong số họ ở đây. Tôi hy vọng những mẹo này có thể giúp bạn giải quyết các vấn đề tương tự khi viết mã

Phương thức

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
7 chỉ yêu cầu một tham số duy nhất để thực thi. Tuy nhiên, nó cũng có hai tham số tùy chọn

  • chuỗi con - chuỗi có số đếm được tìm thấy
  • bắt đầu [Tùy chọn] - chỉ mục bắt đầu trong chuỗi nơi tìm kiếm bắt đầu
  • kết thúc [Tùy chọn] - chỉ mục kết thúc trong chuỗi nơi tìm kiếm kết thúc

Ghi chú. Chỉ mục trong Python bắt đầu từ 0, không phải 1

đếm[] Giá trị trả về

Phương thức

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
7 trả về số lần xuất hiện của chuỗi con trong chuỗi đã cho

ví dụ 1. Đếm số lần xuất hiện của một chuỗi con đã cho

# define string
string = "Python is awesome, isn't it?"
substring = "is"

count = string.count[substring]

# print count print["The count is:", count]

đầu ra

________số 8

ví dụ 2. Đếm số lần xuất hiện của một chuỗi con đã cho bằng bắt đầu và kết thúc

# define string
string = "Python is awesome, isn't it?"
substring = "i"

# count after first 'i' and before the last 'i'

count = string.count[substring, 8, 25]

# print count print["The count is:", count]

đầu ra

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
0

Ở đây, quá trình đếm bắt đầu sau khi gặp phải

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
10 đầu tiên, tôi. e. Vị trí chỉ số
text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
11

Trong chương trình này, vòng lặp while được lặp lại cho đến khi biểu thức kiểm tra

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
9 được đánh giá là 0 [sai]

  1. Sau lần lặp đầu tiên,
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    0 sẽ được chia cho 10 và giá trị của nó sẽ là 345. Sau đó,
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    1 được tăng lên 1
  2. Sau lần lặp thứ hai, giá trị của
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    0 sẽ là 34 và
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    1 được tăng lên 2
  3. Sau lần lặp thứ ba, giá trị của
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    0 sẽ là 3 và
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    1 được tăng lên 3
  4. Sau lần lặp thứ tư, giá trị của
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    0 sẽ là 0 và
    result = sum[[True,True,False]]
    print[result]   # This will print 2 
    
    1 được tăng lên 4
  5. Sau đó, biểu thức kiểm tra được đánh giá là sai và vòng lặp kết thúc

ví dụ 2. Sử dụng các phương thức sẵn có

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
3

đầu ra

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
4

Trong ví dụ trên, trước tiên chúng ta chuyển đổi giá trị số nguyên thành chuỗi bằng cách sử dụng

text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
53. Sau đó, chúng tôi tìm thấy độ dài của chuỗi bằng cách sử dụng
text = "I am 1 string with 2 digits"
count = sum[1 for x in text if x.isdigit[]]
print["the number of digits is: "  + str[count]]
54

Chủ Đề