Tôi đã thực hiện một số so sánh về các phương thức trên + được biên dịch lại bằng cách sử dụng
import re
import string
def py_isupper[text]:
return sum[1 for c in text if c.isupper[]]
def py_str_uppercase[text]:
return sum[1 for c in text if c in string.ascii_uppercase]
def py_filter_lambda[text]:
return len[list[filter[lambda x: x in string.ascii_uppercase, text]]]
def regex[text]:
return len[re.findall[r'[A-Z]',text]]
# remove compile from the loop
REGEX = re.compile[r'[A-Z]']
def regex_compiled[text]:
return len[REGEX.findall[text]]
5 cho việc này, tôi đã sử dụng cuốn sách Alice Adventures In Wonderland, của Lewis Carroll từ Project Gutenberg.For this, I've used the book Alice’s Adventures in Wonderland, by Lewis Carroll from Project Gutenberg.
from urllib.request import urlopen
# Download
text = urlopen['//www.gutenberg.org/files/11/11-0.txt'].read[].decode['utf-8']
# Split it into the separate chapters and remove table of contents, etc
sep = 'CHAPTER'
chaps = [sep + ch for ch in text.split['CHAPTER'] if len[ch] > 1000]
len[chaps]
Xác định tất cả các phương pháp là chức năng để sử dụng chúng trong vòng lặp và giữ cô đọng.
import re
import string
def py_isupper[text]:
return sum[1 for c in text if c.isupper[]]
def py_str_uppercase[text]:
return sum[1 for c in text if c in string.ascii_uppercase]
def py_filter_lambda[text]:
return len[list[filter[lambda x: x in string.ascii_uppercase, text]]]
def regex[text]:
return len[re.findall[r'[A-Z]',text]]
# remove compile from the loop
REGEX = re.compile[r'[A-Z]']
def regex_compiled[text]:
return len[REGEX.findall[text]]
Các kết quả dưới đây.
%%timeit
cnt = [py_isupper[ch] for ch in chaps]
7,84 ms ± 69,7 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 100 vòng mỗi]
%%timeit
cnt = [py_str_uppercase[ch] for ch in chaps]
11,9 ms ± 94,6 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 100 vòng mỗi]
%%timeit
cnt = [py_filter_lambda[ch] for ch in chaps]
19,1 ms ± 499 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 100 vòng mỗi]
%%timeit
cnt = [regex[ch] for ch in chaps]
1,49 ms ± 13 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 1000 vòng mỗi]
%%timeit
cnt = [regex_compiled[ch] for ch in chaps]
1,45 ms ± 8,69 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 1000 vòng mỗi]
Bài viết này sẽ thảo luận về các cách khác nhau để đếm số lượng ký tự viết hoa trong một chuỗi.
Mục lục
- Đếm các ký tự chữ hoa trong chuỗi python bằng cách sử dụng vòng lặp
- Đếm các ký tự chữ hoa trong chuỗi python bằng hàm sum []
- Đếm các ký tự chữ hoa trong chuỗi python bằng regex
- Đếm các ký tự chữ hoa trong chuỗi python bằng cách sử dụng danh sách hiểu
Đếm các ký tự chữ hoa trong chuỗi python bằng cách sử dụng vòng lặp
Đếm các ký tự chữ hoa trong chuỗi python bằng hàm sum []
def count_upper_case_letters[str_obj]: count = 0 for elem in str_obj: if elem.isupper[]: count += 1 return count count = count_upper_case_letters['This is a Sample Text'] print[count]
Output:
Đếm các ký tự chữ hoa trong chuỗi python bằng regex
3
Đếm các ký tự chữ hoa trong chuỗi python bằng hàm sum []
Đếm các ký tự chữ hoa trong chuỗi python bằng regex
str_obj = 'This is a Sample Text' count = sum[1 for elem in str_obj if elem.isupper[]] print[count]
Output:
3
Đếm các ký tự chữ hoa trong chuỗi python bằng regex
Đếm các ký tự chữ hoa trong chuỗi python bằng cách sử dụng danh sách hiểu
import re
import string
def py_isupper[text]:
return sum[1 for c in text if c.isupper[]]
def py_str_uppercase[text]:
return sum[1 for c in text if c in string.ascii_uppercase]
def py_filter_lambda[text]:
return len[list[filter[lambda x: x in string.ascii_uppercase, text]]]
def regex[text]:
return len[re.findall[r'[A-Z]',text]]
# remove compile from the loop
REGEX = re.compile[r'[A-Z]']
def regex_compiled[text]:
return len[REGEX.findall[text]]
1Output:
3
Đếm các ký tự chữ hoa trong chuỗi python bằng cách sử dụng danh sách hiểu
Chúng ta có thể lặp lại một ký tự chuỗi bằng ký tự bằng cách sử dụng một vòng lặp và số lượng ký tự chữ hoa trong chuỗi trong quá trình lặp,
import re
import string
def py_isupper[text]:
return sum[1 for c in text if c.isupper[]]
def py_str_uppercase[text]:
return sum[1 for c in text if c in string.ascii_uppercase]
def py_filter_lambda[text]:
return len[list[filter[lambda x: x in string.ascii_uppercase, text]]]
def regex[text]:
return len[re.findall[r'[A-Z]',text]]
# remove compile from the loop
REGEX = re.compile[r'[A-Z]']
def regex_compiled[text]:
return len[REGEX.findall[text]]
3Output:
3
Quảng cáo
Chúng ta có thể lặp lại tất cả các ký tự trong một chuỗi bằng cách sử dụng biểu thức máy phát. Khi một ký tự viết hoa được tìm thấy trong quá trình lặp, mang lại cho hàm sum []. Trong hàm sum [] cuối cùng sẽ trả về tổng số ký tự chữ hoa trong một chuỗi,