首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串列表列表转换为浮点数?

如何将字符串列表列表转换为浮点数?
EN

Stack Overflow用户
提问于 2014-05-10 16:46:16
回答 1查看 54关注 0票数 0

我有一个清单看起来是这样的:

代码语言:javascript
运行
复制
[[[['0.769', '0.929', '0.977', '1.095', '1.058', '0.864', '0.689', '0.492']], [[0]]], [[['-0.365', '-0.76', '-0.305', '-0.293', '-0.364', '-0.155', '-0.472', '-0.606'], ['-0.296', '-0.503', '-0.454', '-0.868', '-0.721', '-0.918', '-0.486', '-0.582']], [[1]]], [[], [[2]]], [[['-0.246', '-0.935', '-0.277', '-0.175', '-0.278', '-0.075', '-0.236', '-0.417'], ['0.388', '0.329', '0.69', '0.9', '0.626', '0.621', '0.399', '0.37']], [[3]]], [[], [[4]]]]

我想把所有这些值转化成浮标。我试过的代码是:

代码语言:javascript
运行
复制
for x in L:
    x=float(x)
    Z.append(x)

但是,当我尝试这样做时,它会给出以下错误:

代码语言:javascript
运行
复制
TypeError: float() argument must be a string or a number 

有人能告诉我我做错了什么吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-10 16:48:36

您必须遍历嵌套的许多层;外部列表只包含更多的列表。

递归解决方案:

代码语言:javascript
运行
复制
def tofloat(lst):
    return [tofloat(i) if isinstance(i, list) else float(i) for i in lst]

演示:

代码语言:javascript
运行
复制
>>> L = [[[['0.769', '0.929', '0.977', '1.095', '1.058', '0.864', '0.689', '0.492']], [[0]]], [[['-0.365', '-0.76', '-0.305', '-0.293', '-0.364', '-0.155', '-0.472', '-0.606'], ['-0.296', '-0.503', '-0.454', '-0.868', '-0.721', '-0.918', '-0.486', '-0.582']], [[1]]], [[], [[2]]], [[['-0.246', '-0.935', '-0.277', '-0.175', '-0.278', '-0.075', '-0.236', '-0.417'], ['0.388', '0.329', '0.69', '0.9', '0.626', '0.621', '0.399', '0.37']], [[3]]], [[], [[4]]]]
>>> tofloat(L)
[[[[0.769, 0.929, 0.977, 1.095, 1.058, 0.864, 0.689, 0.492]], [[0.0]]], [[[-0.365, -0.76, -0.305, -0.293, -0.364, -0.155, -0.472, -0.606], [-0.296, -0.503, -0.454, -0.868, -0.721, -0.918, -0.486, -0.582]], [[1.0]]], [[], [[2.0]]], [[[-0.246, -0.935, -0.277, -0.175, -0.278, -0.075, -0.236, -0.417], [0.388, 0.329, 0.69, 0.9, 0.626, 0.621, 0.399, 0.37]], [[3.0]]], [[], [[4.0]]]]

这将生成一个新列表,其中包含所有不是转换为float的列表。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23583791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档