How to extract digit from a number?

Tim Chase python.list at tim.thechases.com
Mon Jul 21 22:57:00 CEST 2014


On 2014-07-21 13:42, fl wrote:
> The original source input is:
> >>> a = 1234
> >>> [int(d) for d in str(a)] 
> 
> He hopes the output is:
> >>> [1, 2, 3, 4] 
> 
> In fact, I get the output is:
> 
> >>> a = 1234
> >>> [int(d) for d in str(a)] 
> Traceback (most recent call last):
>   File "<interactive input>", line 1, in <module>
> TypeError: 'str' object is not callable

This sounds suspiciously like you have shadowed the str() function.
You might search your code for something like

  str = "test"

which shadows the built-in str() function.  The code you have works at
the command-line as long as you haven't shadowed the
previously-existing str() function:

$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1234
>>> [int(d) for d in str(a)]
[1, 2, 3, 4]

-tkc






More information about the Python-list mailing list