计算字符串中的字母、数字和标点符号
我该怎么写一个程序,来分别计算字符串中的字母、数字和标点符号呢?
5 个回答
2
这段内容看起来像是一组数字,可能是用来表示某种数据或状态。每个数字之间用逗号分隔,表示它们是一个整体的一部分。具体来说,这里有五个数字,分别是2、2、1、1和0。它们的意义可能需要根据上下文来理解,但单从这组数字来看,我们只能知道它们是一起出现的。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)
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)更有优势。