我試過下面的代碼,但它給了我一個錯誤。我該如何解決這個問題?找到沒有。列表中每個元素的數字
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
我試過下面的代碼,但它給了我一個錯誤。我該如何解決這個問題?找到沒有。列表中每個元素的數字
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
您正在向log10()
函數傳遞一個列表,並且它接受一個float。您可以使用列表理解來計算日誌列表中的所有項目:
>>> digits = [int(math.log10(i)) + 1 for i in mylist]
>>> digits
[1, 1, 2, 2]
這將返回包含my_list
的每個元素的位數的列表。
from math import log10
my_list = [3, 4, 12, 34]
digits = [int(log10(n) + 1) for n in my_list]
這裏的一個工作示例:
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)
'地圖(拉姆達ν:INT(math.log10(V))+ 1,MYLIST)' – ewcz