python - 如何转换浮点字符串的一个元素列表,它们之间的间距不均匀
问题描述
例如,我尝试转换它们之间具有均匀间距的浮点字符串
floating_num = ['6.7 6.8 6.9 7.0 7.1']
第一步:使用string
方法string.split()
floating_num = floating_num[0].split(' ')
并得到list
了string
float
5 个元素
floating_num = ['6.7', '6.8', '6.9', '7.0', '7.1']
第 2 步:然后将每个元素转换为float
使用列表推导
floating_num = [float(x) for x in floating_num]
然后得到一个list
带有float
5 个浮点类型元素的
floating_num = [6.7, 6.8, 6.9, 7.0, 7.1]
我的问题:
我尝试转换floating_num = ['6.7 6.8 6.9 7.0 7.1']
,但在每个浮点字符串之间使用非均匀间距。例如,6.7 和 6.8 之间的间距有 2 个空格,6.8 和 6.9 之间有 1 个空格,6.9 之间有 3 个空格,等等。如何将其转换为list
of float
?我已经尝试了第 1 步并得到了这个结果
['6.7', '', '6.8', '6.9', '', '', '7.0', '', '7.1']
因为我在split()
方法中使用的分隔符只有 1 个间距' '
,所以我得到了带有值的元素''
。当我将其转换为浮点数时,出现错误:
ValueError:无法将字符串转换为浮点数。
字符串方法split()
可以适用于此吗?还是有其他方法?
解决方案
不带参数使用.split
处理多个空格。
x = '6.7 6.8 6.9 7.0 7.1'
[float(y) for y in x.split()]
# returns:
[6.7, 6.8, 6.9, 7.0, 7.1]
推荐阅读
- node.js - Sequelize 关联生成不存在的字段
- javascript - 在 Angular CLI 中添加 JavaScript 库/代码
- c++ - 块范围内的 thread_local
- javascript - 节点红色 setInterval 返回相同的值
- python - 通过 TCP/IP 将变量从 LabVIEW 2016 发送到 Rasperry Pi 3 以合并到代码中
- c++ - Vector 没有创建多个类对象
- electron - 如何在没有标题栏高度的情况下获得电子窗口的高度?
- c++ - 使用导致分段错误的类在 C++ 中实现堆栈
- python-3.x - 显示多个项目的总和
- python - pandas 版本对表格的影响