首先,我将提到我是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
无论如何要实现这个目标,还是应该寻找不同的解决方案?
任何帮助表示赞赏 感谢您
答案 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