计算字符串中的字母、数字和标点符号

2 投票
5 回答
19200 浏览
提问于 2025-04-16 23:02

我该怎么写一个程序,来分别计算字符串中的字母、数字和标点符号呢?

5 个回答

2
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)

这段内容看起来像是一组数字,可能是用来表示某种数据或状态。每个数字之间用逗号分隔,表示它们是一个整体的一部分。具体来说,这里有五个数字,分别是2、2、1、1和0。它们的意义可能需要根据上下文来理解,但单从这组数字来看,我们只能知道它们是一起出现的。
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)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

8

如果想要一个更简洁、更快的版本,可以使用下面的代码:

count = lambda l1,l2: sum([1 for x in l1 if x in l2])

举个例子:

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

使用集合(set)可以让你的代码运行得更快。

而且根据字符串的大小,我觉得在内存使用上也会比用过滤器(filter)更有优势。

撰写回答