python如何从字符串中提取数字_如何在Python中从字符串中提取数字?
我将提取字符串中包含的所有数字。 哪个更适合于目的,正则表达式或isdigit()方法?
例:
line = "hello 12 hi 89"
结果:
[12, 89]
#1楼
@jmnas,我很喜欢您的回答,但没有找到浮点数。 我正在处理一个脚本,以分析要送入CNC铣床的代码,并且需要查找可以是整数或浮点数的X和Y尺寸,因此我将代码修改为以下内容。 查找具有正值和负值的int,float。 仍然找不到十六进制格式的值,但是您可以在num_char元组中添加“ x”和“ A”至“ F”,我认为它将解析“ 0x23AC”之类的内容。
s = 'hello X42 I\'m a Y-32.35 string Z30'
xy = ("X", "Y")
num_char = (".", "+", "-")
l = []
tokens = s.split()
for token in tokens:
if token.startswith(xy):
num = ""
for char in token:
# print(char)
if char.isdigit() or (char in num_char):
num = num + char
try:
l.append(float(num))
except ValueError:
pass
print(l)
#2楼
这有点迟了,但是您也可以扩展regex表达式以说明科学符号。
import re
# Format is [(, ), ...]
ss = [("apple-12.34 ba33na fanc-14.23e-2yapple+45e5+67.56E+3",
['-12.34', '33', '-14.23e-2', '+45e5', '+67.56E+3']),
('hello X42 I\'m a Y-32.35 string Z30',
['42', '-32.35', '30']),
('he33llo 42 I\'m a 32 string -30',
['33', '42', '32', '-30']),
('h3110 23 cat 444.4 rabbit 11 2 dog',
['3110', '23', '444.4', '11', '2']),
('hello 12 hi 89',
['12', '89']),
('4',
['4']),
('I like 74,600 commas not,500',
['74,600', '500']),
('I like bad math 1+2=.001',
['1', '+2', '.001'])]
for s, r in ss:
rr = re.findall("[-+]?[.]?[\d]+(?:,\d\d\d)*[\.]?\d*(?:[eE][-+]?\d+)?", s)
if rr == r:
print('GOOD')
else:
print('WRONG', rr, 'should be', r)
一切都好!
#3楼
我发现的最佳选择如下。 它将提取一个数字并可以消除任何类型的字符。
def extract_nbr(input_str):
if input_str is None or input_str == '':
return 0
out_number = ''
for ele in input_str:
if ele.isdigit():
out_number += ele
return float(out_number)
#4楼
此答案还包含数字在字符串中为浮点的情况
def get_first_nbr_from_str(input_str):
'''
:param input_str: strings that contains digit and words
:return: the number extracted from the input_str
demo:
'ab324.23.123xyz': 324.23
'.5abc44': 0.5
'''
if not input_str and not isinstance(input_str, str):
return 0
out_number = ''
for ele in input_str:
if (ele == '.' and '.' not in out_number) or ele.isdigit():
out_number += ele
elif out_number:
break
return float(out_number)
#5楼
如果您知道字符串中只有一个数字,即“ hello 12 hi”,则可以尝试过滤。
例如:
In [1]: int(''.join(filter(str.isdigit, '200 grams')))
Out[1]: 200
In [2]: int(''.join(filter(str.isdigit, 'Counters: 55')))
Out[2]: 55
In [3]: int(''.join(filter(str.isdigit, 'more than 23 times')))
Out[3]: 23
但是要小心! :
In [4]: int(''.join(filter(str.isdigit, '200 grams 5')))
Out[4]: 2005
python如何从字符串中提取数字_如何在Python中从字符串中提取数字?相关推荐
- python右对齐 数字_如何在Python中右对齐数值数据?
我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...
- python一次输入多个值_如何在Python的一行中从用户输入多个值?
为了读取语言C中的多个变量,我们编写类似-//Read three variable in one line scanf("%d %d %d", &x, &y, & ...
- python中如何追加_如何在Python中将元素添加到列表中-追加,扩展和插入
在Python中使用列表时,您通常会希望向列表中添加新元素. Python列表数据类型具有三种添加元素的方法:append()-将单个元素追加到列表. extend() -将iterable的元素添加 ...
- python中第三方模块_如何在python脚本中包含第三方模块?
我已经开始使用Python来自动化我工作中的重复任务,并且经常需要将对第三方模块的引用集成到我的脚本中.如何将这些文件直接包含在脚本中?我知道有一些方法可以在python安装文件夹(C:\Python ...
- python移动文件中某个内容_如何在Python中移动文件
如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...
- python中获取文件大小_如何在Python中获取文件大小
python中获取文件大小 We can get file size in Python using the os module. 我们可以使用os模块在Python中获取文件大小. Python中的 ...
- python ascii码16进制转换_如何在Python十六进制整数和ASCii编码的字符串之间进行转换...
今天,我将与您分享一种将Python十六进制整数转换为ASCii编码的字符串的方法,该方法具有很好的参考价值,希望对大家有所帮助. 让我们一起关注小编,看看 当使用Pyserial与STM32通信时, ...
- python包含多个元组的元组_如何在python中将多个”列出的”元组连接成一个元组?...
在python中,关于这个问题的答案很少,如何将一个元组列表连接到一个列表中?,如何在python中合并两个元组?,如何在python中合并任意数量的元组?所有的答案都引用了元组列表,所以提供的解决方 ...
- python3提取字符串中的数字_如何在Python中从字符串中提取数字?
14 回复 | 直到 1 年前 1 430 3 年前 如果只想提取正整数,请尝试以下操作: >>> str = "h3110 23 cat 444.4 rabbit 11 ...
- python怎么判断输入的是不是数字_如何在PYTHON里判断字符串是否为数字
1 打开JUPYTER NOTEBOOK,新建一个空白的PY文档. 2 str1 = "888" print(str1.isdecimal()) print(str1.isdigi ...
最新文章
- 关于eigrp-FSM有限状态机的资料
- 【认证课程】NP 理论复习之ospf(一)
- Kafka常用命令之kafka-console-consumer.sh
- NASA 遭攻击,安全 Bug 仍未解决!
- 流行的JavaScript库 ——jQuery
- context-param标签含义及与init-param标签的异同(转)
- .obj格式的文件怎么显示在html_怎么才能把安卓手机备忘录便签里的文件转到苹果上?...
- 李宏毅机器学习——无监督学习(二)
- 自动化运维工具 puppet
- crm系统服务器要求,crm系统需要配备什么云服务器
- 【JAVAWEB复习系列】第二部分
- C++ 3D 绘图技术调研常用库介绍
- 自动巡检机器人故障检测系统
- 深圳IT外包公司名单汇总
- Google谷歌中国总裁李开复将离职创业
- 无家可归的iPhone(第2部分)
- Touch ID身份认证
- GoogleEarth--全球卫星地图浏览
- 在南方读研和在北方读研有多大差异?
- PDF怎么测量图纸尺寸与面积
热门文章
- 计算机密码忘记旗舰版7,台式电脑win7旗舰版忘了开机密码怎么办?
- 张一鸣的大学四年收获及工作感悟
- 7z文件linux怎么解压,Ubuntu 12.04下解压7z文件
- 数据结构 WSADATA
- linux单引号作用,单引号 双引号如何输入(Linux运维:单引号与双引号的使用)...
- jQuery到Vue的迁移之路
- 【Python学习】Python的点滴积累
- c语言制作单片机人机界面,基于51单片机自制触摸屏
- excel 插入计算机用户名,excel中获取计算机登陆的用户名
- matlab茎叶图命令,[转载]转载:Stata命令(转自人大论坛)