我想转换嵌套lis中的数据类型

2024-09-28 17:15:39 发布

您现在位置:Python中文网/ 问答频道 /正文

使用jupyternotebooks/python3.x;我一直在尝试找出如何将字符串转换为列表中的浮点数。我不知道如何最好地完成这一点,任何建议将不胜感激。我已经到了转换单个项目的地步,但是当我试图将数据保存回测试列表时,出现了各种错误。你知道吗

my_test_list=[]
my_test_list= [[ '7','8','9','10','11'],['12','13','14','15','16']]

for i in my_test_list:
    for x in i:
        try:
            x=float(x)
            print(x)
        except ValueError:
            pass

print(my_test_list)

产生结果:

7.0
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
16.0
[['7', '8', '9', '10', '11'], ['12', '13', '14', '15', '16']]

我想print(my_test_list)得出以下结果:

[[7.0, 8.0, 9.0, 10.0, 11.0], [12.0, 13.0, 14.0, 15.0, 16.0]]

Tags: 数据项目字符串intest列表formy
3条回答

你可以做到这一点

test = [['7', '8', '9', '10', '11'], ['12', '13', '14', '15', '16']]


test = [[float(x) for x in l] for l in test]

我同意nunopalma的回答,但是没有解释为什么这个代码有效而你的代码无效。简单地说,您的代码:

for i in my_test_list:
for x in i:
    try:
        x=float(x)
        print(x)
    except TypeError:
        pass

从不将转换后的x保存到我的测试列表中。虽然提供的答案要简洁得多,但您的代码可以使用一个简单的补充:

output_list = []
for i in my_test_list:
for x in i:
    try:
        x=float(x)
        print(x)
        output_list[i].append(x)
    except TypeError:
        pass

公认的答案基本上就是这方面的速记。你知道吗

这是非常快速和容易与numpy

import numpy
print(numpy.array([[ '7','8','9','10','11'],['12','13','14','15','16']],dtype=float))

相关问题 更多 >