首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从多行字符串中计数特定行中的项

如何从多行字符串中计数特定行中的项
EN

Stack Overflow用户
提问于 2017-12-01 17:16:22
回答 4查看 54关注 0票数 0
代码语言:javascript
复制
>>> itms="""banana  cookie  cream  soda   lime  limes  apples
              desert  plate   cake  orange  milk   beans   
              juice   apple pie"""

我想知道如何从多行字符串中计数某一行中的项目?

示例:第一行将返回7

第二个将返回6

最后一个将返回2 (因为“苹果派”中只有一个空白)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-12-01 17:23:29

这里有一个小例子,打印出一行中的元素数。

代码语言:javascript
复制
import re
lines = [re.split(r'\s{2,}',x.strip()) for x in itms.split("\n")]
for index, line in enumerate(lines):
    print "line number : {0} has {1} elements".format(index, len(line))

line number : 0 has 7 elements
line number : 1 has 6 elements
line number : 2 has 3 elements

1)首先,要将每个line字符串放入一个strings列表中

2)然后将其分解为它的单个元素,以便一行中的每个单词都在它自己的列表中。

3)从那时起,我们只需要得到包含your words per line的列表的长度。

票数 1
EN

Stack Overflow用户

发布于 2017-12-01 17:26:05

代码语言:javascript
复制
In [12]: itms="""banana  cookie  cream  soda   lime  limes  apples
    ...:               desert  plate   cake  orange  milk   beans
    ...:               juice   apple pie"""

将字符串拆分成行

代码语言:javascript
复制
In [13]: itms = [line.strip() for line in itms.split('\n')]

In [14]: itms
Out[14]:
['banana  cookie  cream  soda   lime  limes  apples',
 'desert  plate   cake  orange  milk   beans',
 'juice   apple pie']

将项拆分到两个以上的空格上

代码语言:javascript
复制
In [15]: import re

In [16]: itms =  [re.split(r'\s\s+', line) for line in itms]

In [17]: itms
Out[17]:
[['banana', 'cookie', 'cream', 'soda', 'lime', 'limes', 'apples'],
 ['desert', 'plate', 'cake', 'orange', 'milk', 'beans'],
 ['juice', 'apple pie']]

计算每一行中的元素

代码语言:javascript
复制
In [18]: for x in itms:
    ...:     print(len(x))
    ...:
7
6
2
票数 2
EN

Stack Overflow用户

发布于 2017-12-01 17:32:18

假设您可以指望单词分隔符始终是两个空格,下面将返回[7, 6, 2]

代码语言:javascript
复制
[len(line.strip().split('  ')) for line in itms.split('\n')]

如果单词分隔符是任意数量的空格字符,则可以使用regex模块。

代码语言:javascript
复制
import re
[len(re.split(r'\s\s+', line.strip())) for line in itms.split('\n')]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47598323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档