Làm thế nào tôi có thể viết một chương trình đếm các chữ cái, số và dấu câu [riêng biệt] trong một chuỗi?
Hỏi ngày 6 tháng 8 năm 2011 lúc 22:10Aug 6, 2011 at 22:10
2
Đối với một phiên bản ngưng tụ / nhanh hơn một chút, cũng có
Count = Lambda L1, L2: sum [[1 cho x trong l1 nếu x trong l2]]
ví dụ:
count = lambda l1,l2: sum[[1 for x in l1 if x in l2]]
In [11]: s = 'abcd!!!'
In [12]: count[s,set[string.punctuation]]
Out[12]: 3
Sử dụng một bộ sẽ giúp bạn tăng tốc độ.
Cũng tùy thuộc vào kích thước của chuỗi tôi nghĩ bạn cũng sẽ nhận được lợi ích bộ nhớ so với bộ lọc.
Đã trả lời ngày 9 tháng 1 năm 2013 lúc 6:42Jan 9, 2013 at 6:42
4
import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
Đã trả lời ngày 6 tháng 8 năm 2011 lúc 22:36Aug 6, 2011 at 22:36
BrainstormbrainstormBrainStorm
2.0261 Huy hiệu vàng16 Huy hiệu bạc23 Huy hiệu đồng1 gold badge16 silver badges23 bronze badges
4
count_chars = ".arPZ"
string = "Phillip S. is doing a really good job."
counts = tuple[string.count[c] for c in count_chars]
print counts
[2, 2, 1, 1, 0]
Đã trả lời ngày 6 tháng 8 năm 2011 lúc 22:36Aug 6, 2011 at 22:36
BrainstormbrainstormNiklas R
2.0261 Huy hiệu vàng16 Huy hiệu bạc23 Huy hiệu đồng25 gold badges97 silver badges198 bronze badges
[2, 2, 1, 1, 0]
for c in "this is a test string with punctuation ,.;!":
print c
outputs:
t
h
i
s
...
Niklas rniklas r
15.7K25 Huy hiệu vàng97 Huy hiệu bạc198 Huy hiệu đồngAug 6, 2011 at 22:16
Để lặp qua một chuỗi, bạn có thể sử dụng một vòng lặp:Fredrik Pihl
Bây giờ, tất cả những gì bạn phải làm là đếm những lần xuất hiện ...7 gold badges82 silver badges130 bronze badges
1
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọcstring.punctuation
is a pre-initialized string used as string constant. In Python, string.punctuation
will give the all sets of
punctuation.
Bàn luận string.punctuation
Trong Python3,
string.punctuation
là một chuỗi được khởi tạo trước được sử dụng làm hằng số chuỗi. Trong Python,string.punctuation
sẽ cung cấp cho tất cả các bộ chấm câu. Doesn’t take any parameter, since it’s not a function.Cú pháp: String.Punction Return all sets of punctuation.
Tham số: Không lấy bất kỳ tham số nào, vì nó không phải là một hàm.Make sure to import string library function inorder to use string.punctuation
Trả về: Trả về tất cả các bộ chấm câu.
Lưu ý: Đảm bảo nhập chức năng thư viện chuỗi để sử dụng string.punctuation
Mã số 1:
import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
5import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
6
0 import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
1import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
!"#$%&'[]*+, -./:;?@[\]^_`{|}~
import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
2import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
3 import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
4Code #2 : Given code tests for punctuation.
Lưu ý: Đảm bảo nhập chức năng thư viện chuỗi để sử dụng string.punctuation
Mã số 1:
import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
0 import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
1import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
2import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
3 import string
a = "I'm not gonna post my homework as question on OS again, I'm not gonna..."
count = lambda l1, l2: len[list[filter[lambda c: c in l2, l1]]]
a_chars = count[a, string.ascii_letters]
a_punct = count[a, string.punctuation]
4Đầu ra:
Output:
Punctuation:, Punctuation: ! Punctuation:, Punctuation: ?