TypeError:float()参数必须是字符串或数字,而不是'list'python

时间:2016-06-04 11:45:16

标签: python

我遇到了Python的问题。 这是我的代码:

def calcola():
            a = input()
            b = float(a[0].split("*"))
            c = float(a[0].split("/")) 
            d = float(a[0].split("-"))
            e = float(a[0].split("+"))
            j = float(a[1].split("*"))
            k = float(a[1].split("/")) 
            l = float(a[1].split("-")) 
            m = float(a[1].split("+")) 
            b = b[0]
            c = b[1]
            d = c[0]
            e = c[1]
            f = d[0]
            g = d[1]
            h = e[0]
            i = e[1]
            somma1 = b+c
            somma2 = d+e
            somma3 = f+g
            somma4 = h+i
            print(somma1)
            print(somma2)
            print(somma3)
            print(somma4)


calcola()

我有一些错误:

  

追踪(最近一次通话):    文件“file.py”,第29行,in      calcola()    用calcola文件“file.py”,第3行      b = float(a [0] .split(“*”))   TypeError:float()参数必须是字符串或数字,而不是'list'

如何在列表中转换数字?

1 个答案:

答案 0 :(得分:9)

您无法直接在列表中呼叫m1 <- matrix(1:6, ncol=2) length(m1) #[1] 6 。您可以使用float在列表中的每个项目上调用map。像这样:

float

在python 3.x

b = map(float, a[0].split("*"))

或者为了更具可读性,请使用列表理解。适用于python2和python3:

b = list(map(float, a[0].split("*")))

但请确保分割后的项目是 floatable