【问题标题】:Python .count: Can't find correct syntax to count \nPython .count: 找不到正确的语法来计数\n
【发布时间】:2013-09-04 16:28:40
【问题描述】:

首先我会提到我是 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

有没有办法做到这一点,还是我应该寻找不同的解决方案?

感谢任何帮助
谢谢你

【问题讨论】:

    标签: python string list python-2.5


    【解决方案1】:

    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
    

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

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

    【讨论】:

    • 当一个项目包含多个 '\n' 时,这两种方法都会失败。 item.count('\n') 而不是 1?
    • @Brian 使用:sum(item.count('\n') for item in data)。 `
    • 只是想确保 OP 知道这一点。 +1
    • Brian 的代码有效:num = sum(item.count('\n') for item in data), print num, '\n' = 4.Thank-you Ashwini, & Brian跨度>
    【解决方案2】:

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

    你可以做的是将列表加入一个字符串,如下所示:

    x = ''.join(num)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 2020-02-21
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多