在python中,如何找出句子中有多少组数字[重复]

Posted

技术标签:

【中文标题】在python中,如何找出句子中有多少组数字[重复]【英文标题】:In python, how to find out how many sets of numbers in the sentences [duplicate] 【发布时间】:2017-04-06 23:18:37 【问题描述】:

例如,如果有一句话“我有 8 支钢笔,我的朋友有 7 支钢笔” 我知道如何使用 re.findall 来提取数字,结果将是 ['8', '7']。但是,我想弄清楚句子中有多少组数字,答案应该是 2。有人可以帮我做吗?谢谢

【问题讨论】:

如果你的意思是说数字的数量,那么你可以这样做来得到它-len(re.findall(r'\d+', 'I have 8 pens and my friend have 7 pens')) 不清楚您的意思是正确的 python set 数字(输出中没有重复),还是在通用“数字组”上下文中使用它(允许重复) 【参考方案1】:

仅使用findall() 输出的长度?

>>> sent =  "I have 8 pens and my friend have 7 pens"
>>> import re
>>> re.findall(r'\d+', sent)
['8', '7']
>>> len(re.findall(r'\d+', sent))
2

或者由于您要求提供一组数字,因此也将列表转换为一组(不包括任何双精度数)。

>>> sent =  "I have 8 pens and my 8 friend have 7 pens"
>>> import re
>>> re.findall(r'\d+', sent)
['8', '8', '7']
>>> len(re.findall(r'\d+', sent))
3
>>> len(set(re.findall(r'\d+', sent)))
2

【讨论】:

【参考方案2】:

要找出一个字符串中有多少个数字,您可以找到您使用re.findall 调用创建的列表的长度。

In [1]: import re

In [2]: sentence = "I have 3 tacos, 2 burritos, and 3 tortas"

In [3]: re.findall(r'\d+', sentence)
Out[3]: ['3', '2', '3']

In [4]: len(re.findall(r'\d+', sentence))
Out[4]: 3

要找出字符串中有多少个唯一数字,请将列表转换为集合并求其长度。

In [5]: len(set(re.findall(r'\d+', sentence)))
Out[5]: 2

【讨论】:

【参考方案3】:

你不能用len(re.findall())找到答案。

【讨论】:

【参考方案4】:

如果你使用

amount = len(re.findall(sentence))
print(amount)

这应该有效。虽然,我必须承认我从未使用过 re.findall,但它看起来像是创建了一个数字列表。因此,如果字符串在一个名为 sentence 的变量中,并且 re.findall 会生成一个数字列表。然后 Len 应该读取列表的长度。然后它将打印列表的长度。

【讨论】:

以上是关于在python中,如何找出句子中有多少组数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何找出一个组中有多少个元组

Python中一个句子怎么样找出所有的长度最长的单词?

值为1到99的100个数中有两个数相等,设计算法找出这两个数

如何找出 python list 中有重复的项

在python 3中,如何创建一个元组,它是一个对象,元组中有多少个元素?它应作为函数参数有效[重复]

Pythondemo实验5练习实例多个数字组合成不重复三位数