【问题标题】:Python: Get unique numbers from a textPython:从文本中获取唯一数字
【发布时间】:2020-12-24 21:11:58
【问题描述】:

假设我有以下文字:

text = "30 people work for 3 managers"

T 我想从上面的文本中只提取 3 个。上面的文字只是一个例子,可以是任意的。以下代码似乎正确但不起作用

find = re.findall(r"3", text)

这段代码的输出是

 ['3', '3']
find = re.findall(r"(\d+)", text)

上述方法也行不通,因为我会同时得到 30 和 3。我特别想3。

输出也在列表中。如何转换为字符串。我不想使用 .join 方法或 for 循环。我最终会将此代码应用于df。所以我可以使用 .apply() 方法

【问题讨论】:

  • re.findall('(3)[\s\.]', text) 寻找三个后跟空格或句点作为句末。
  • 也许只是\b3\b

标签: python-3.x pandas python-re


【解决方案1】:

如果我理解正确 - 你正在尝试所有出现的数字 3。你拉的原因

['3','3']

是因为您的文本中实际上有两个 '3'。 30 人也可以买一份。

您可以使用 find " 3 " 而不是简单的 "3" 来确保排除其他数字,例如 30、33、13 等......

【讨论】:

  • 它将因“30 人为 3 人工作”而失败。
  • 你说得对,没想到3什么时候会是句尾。
猜你喜欢
  • 1970-01-01
  • 2019-07-18
  • 2016-09-01
  • 2019-04-01
  • 2017-12-27
  • 2013-09-09
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多