在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中,如何找出句子中有多少组数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章
值为1到99的100个数中有两个数相等,设计算法找出这两个数