>>> ndec = lambda x: 0 if '.' not in str(x) else len(str(x).split('.')[1].split('e')[0])
>>> (1, 1.0, 1.23, 1.234e-5, 3e5, 3e33)
(1, 1.0, 1.23, 1.234e-05, 300000.0, 3e+33)
>>> [ndec(i) for i in _]
[0, 1, 2, 3, 1, 0]
(Note that this is not the same thing as the number of significant digits. And if you don't want to count trailing 0s then change `[0]` to `[0].rstrip('0')`)
/c