2016-08-05 2 views
0

Я пробовал следующий код, но он дает мне ошибку. Как я должен исправить эту проблему ?.Поиск №. цифр каждого элемента в списке

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 
+0

'карта (лямбда-v: Int (math.log10 (v)) + 1, MyList)' – ewcz

ответ

0

Вы передаете список log10() функции, и это в то время как он принимает поплавок. Вы можете использовать список понимание для расчета журнала для всех элементов в списке:

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

Это возвращает список, содержащий количество цифр каждого элемента в my_list.

from math import log10 

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

Вот рабочий пример:

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)