当前位置: 首页 > 面试题库 >

以简单的方式从python字符串中提取数字

薛经艺
2023-03-14
问题内容

例如,我有一个存储数字和单位的字符串

x= '$120'
y = ' 90 Degrees F'
banana = '200 kgm'
orange = '300 gm'
total_weight = banana + orange/1000

例如,我想添加权重

total_weight  = 200 + 300/1000

谢谢!

我试图提取数字只是为了对它们进行一些操作……最简单的方法是什么?我只处理这两种格式,即数字位于字符串的开头或结尾。


问题答案:

从字符串中提取数字的最简单方法是使用正则表达式和findall

>>> import re
>>> s = '300 gm'
>>> re.findall('\d+', s)
['300']
>>> s = '300 gm 200 kgm some more stuff a number: 439843'
>>> re.findall('\d+', s)
['300', '200', '439843']

可能您需要更复杂的东西,但这是一个很好的第一步。

请注意,您仍然必须调用int结果以获取正确的数字类型(而不是另一个字符串):

>>> map(int, re.findall('\d+', s))
[300, 200, 439843]


 类似资料:
  • 问题内容: 我是新手,我有一个字符串,我想从字符串中提取数字。例如: 输出为 我只想获取一个整数,而不是列表。 问题答案: 您可以使用方法按 数字 字符串,

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:

  • 问题内容: 我将提取字符串中包含的所有数字。哪个更适合pur 例: 结果: 问题答案: 如果只想提取正整数,请尝试以下操作: 我认为这比正则表达式示例更好,原因有三点。首先,你不需要其他模块;其次,它更具可读性,因为你无需解析迷你语言;第三,它更快(因此可能更): 这将无法识别浮点数,负整数或十六进制格式的整数。如果你不能接受这些限制,则可以通过以下亭亭玉立的答案解决问题。

  • 我得到以下字符串: 我想从里面拿走食物和饮料。 我尝试了以下代码: 但它给人的感觉是,食物很刺激,喝了很多,离食物很近,三个和四个。

  • 我有一个以下格式的Java字符串==ocid1。instancepool。oc1.iad。aaaaaaaa wq4bibigdvw6esvmbia4zhs7dkaposzkzxuvir2ajtfyciih45fa 我想提取第三个和第四个点之间的子串,即“iad”。实现这一点的最佳方式是什么?逻辑应该是通用的,并且应该适用于任何有四个点的字符串。

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。