我试图在列表中使用log10函数,但是,即使我将列表转换为浮点数,每次遇到“都需要浮点数错误”时,也是如此。我不明白我在做什么错。到目前为止,这是我的代码:

#!/usr/bin/python
import math
import operator

fileq= open("test.ppx1","r")
filer= open("test.prob1","r")
words = list(fileq.read().split())
words2 = list(filer.read().split())
words[:]=[x[:8] for x in words]
words2[:]=[x[:8] for x in words2]
id1= words[-1]
id2=words2[-1]
words.remove(id1)
words2.remove(id2)
map(float,words)
map(float,words2)


[math.log(y,10) for y in words]
[math.log(y,10) for y in words2]


这是我不断得到的错误:


  TypeError:需要浮点数

最佳答案

map(float, words)
map(float, words2)


map不在适当的位置。它返回一个新列表(在Python 2中。在Python 3中,它返回一个map object)。在给定可迭代项上执行该函数的结果。

将这些行更改为:

words = map(float, words)
words2 = map(float, words2)

关于python - python math模块,列表中的log10,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37743921/

10-10 17:33