Python .count:无法找到正确的语法来计算\ n

时间:2013-09-04 16:28:41

标签: python string list python-2.5

首先,我将提到我是Python语言的新手,来自网络背景。如果您想知道我使用Python 2.5的原因是由于某些设备限制。

我要做的是计算数据字符串中的行数,如下所示。 (不在档案中)

data = ['This','is','some','test','data','\nThis','is','some','test','data','\nThis','is','some','test','data','\nThis','is','some','test','data','\n']

不幸的是,我似乎无法获得正确的语法来计算 \ n 。到目前为止,这是我提出的。

num = data.count('\n')
print num

上面的代码对于预期的输出显然是错误的,因为它相对于测试数据返回1,我希望看到它返回4如果可能的话。它只发现'\ n'中的1个是示例中的最后一个,因为它匹配。

如果我使用以下代码来查找所有代码,则由于语法原因而无法运行。

num = data.count (\n)
print num

我从以下链接开始使用此代码,示例是第三个代码。

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/strings3.html

无论如何要实现这个目标,还是应该寻找不同的解决方案?

任何帮助表示赞赏 感谢您

2 个答案:

答案 0 :(得分:5)

list.count用于获取列表中项目的计数,但您需要在每个项目中进行子字符串搜索,以使计数为4。

>>> data = ['This','is','some','test','data','\nThis','is','some','test','data','\nThis','is','some','test','data','\nThis','is','some','test','data','\n']

包含'\n'的商品总数:

>>> sum('\n' in item for item in data)
4

'\n'中所有data的计数总和:

>>> data = ['\n\nfoo','\n\n\nbar']
>>> sum(item.count('\n') for item in data)
5

答案 1 :(得分:2)

您的第一个代码不起作用,因为您在实际的字符串列表中只有一个'\n'。当您将'\n''nThis'进行比较时,会说\n不等于该字符串,并且不会将其包含在计数中。

您可以做的是将列表加入如下字符串:

x = ''.join(num)

然后尝试使用字符串类的count方法。这将允许您在总字符串中找到等同于'\ n'的子字符串。

y = x.count('\n')
print y