python 如何将嵌套列表转换为浮点型?

nbewdwxp  于 2023-01-04  发布在  Python
关注(0)|答案(3)|浏览(146)

我已经尝试使用下面的代码,但它一直给我类型错误:float应该只有一个参数,得到了2。我想把包含字符串的嵌套列表转换成float,这样我就可以计算p和q的总和。经过许多小时的尝试和在线研究,我仍然卡住了。

C1=[['1','2'],['1','2']]
int1=[]
for p, q in C1:
    int1.append(float(p, q))
niknxzdl

niknxzdl1#

我认为您的困难在于您要对两个值而不是一个值使用float

C1 = [['1','2'],['1','2']]
int1 = []
for p, q in C1:
    int1.append([float(p), float(q)])

它会给予你一个浮点数列表。要得到一个浮点数和的列表,再修改一下:

C1 = [['1','2'],['1','2']]
int1 = []
for p, q in C1:
    int1.append(float(p) + float(q))

如果你想对所有的值求和,你可以只对列表求和:

total = sum(int1)
yqlxgs2m

yqlxgs2m2#

内置的 * float()* 函数只有一个参数。
您可以像这样构建目标列表:

C1 = [['1','2'],['1','2']]

int1 = [[float(n) for n in e] for e in C1]

print(int1)
    • 输出:**
[[1.0, 2.0], [1.0, 2.0]]

这样做意味着您不受输入列表或其子列表长度的限制

jfgube3f

jfgube3f3#

在这里,您可以使用多种方法来解决这个问题,在小范围内,您可以创建一个新列表,并将每个值转换为浮点型,然后将其附加到新列表中...但在大范围内,例如长度为2-000-000或更长的列表中,您可能会出错并遇到内存问题,解决此问题的最佳方法是更改实际列表中的值
正如你所知道的,列表是通过引用传递的,这意味着它们发送内存中的位置,当你复制它们并改变复制版本时,它对真实的列表的影响是
所以在这里我使用python中这个功能来解决这个问题

In [15]: for index,value in enumerate(C1):
    ...:     for inner_index, inner_value in enumerate(C1[index]):
    ...:         C1[index][inner_index]=float(inner_value)
    ...:     print(C1)

相关问题