使用maths.log10函数查找列表中每个元素的总数

时间:2016-08-05 14:30:06

标签: python python-3.x

我尝试了以下代码,但它给了我一个错误。我该如何解决这个问题?。

import math
mylist=[3,4,12,34]
digits = int(math.log10(mylist))+1


Traceback (most recent call last):  
File "prog.py", line 3, in <module>  
TypeError: a float is required 

3 个答案:

答案 0 :(得分:1)

您正在将一个列表传递给log10()函数,并且它接受一个浮点数。您可以使用列表推导来计算列表中所有项目的日志:

>>> digits = [int(math.log10(i)) + 1 for i in mylist]
>>> digits
[1, 1, 2, 2]

答案 1 :(得分:1)

这将返回一个列表,其中包含my_list中每个元素的位数。

from math import log10

my_list = [3, 4, 12, 34]
digits = [int(log10(n) + 1) for n in my_list]

答案 2 :(得分:1)

这是一个有效的例子:

import math


def f(x):
    return int(math.log10(x)) + 1

mylist = [3, 4, 12, 34]
digits = []

for x in mylist:
    fx = f(x)
    print("f({0})={1}".format(x, fx))
    digits.append(fx)