我已经尝试使用下面的代码,但它一直给我类型错误:float应该只有一个参数,得到了2。我想把包含字符串的嵌套列表转换成float,这样我就可以计算p和q的总和。经过许多小时的尝试和在线研究,我仍然卡住了。
C1=[['1','2'],['1','2']] int1=[] for p, q in C1: int1.append(float(p, q))
niknxzdl1#
我认为您的困难在于您要对两个值而不是一个值使用float。
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)
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]]
这样做意味着您不受输入列表或其子列表长度的限制
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)
3条答案
按热度按时间niknxzdl1#
我认为您的困难在于您要对两个值而不是一个值使用
float
。它会给予你一个浮点数列表。要得到一个浮点数和的列表,再修改一下:
如果你想对所有的值求和,你可以只对列表求和:
yqlxgs2m2#
内置的 * float()* 函数只有一个参数。
您可以像这样构建目标列表:
这样做意味着您不受输入列表或其子列表长度的限制
jfgube3f3#
在这里,您可以使用多种方法来解决这个问题,在小范围内,您可以创建一个新列表,并将每个值转换为浮点型,然后将其附加到新列表中...但在大范围内,例如长度为2-000-000或更长的列表中,您可能会出错并遇到内存问题,解决此问题的最佳方法是更改实际列表中的值
正如你所知道的,列表是通过引用传递的,这意味着它们发送内存中的位置,当你复制它们并改变复制版本时,它对真实的列表的影响是
所以在这里我使用python中这个功能来解决这个问题