Python, convert an integer into an index?
Lorenzo Sutton
lorenzofsutton at gmail.com
Thu Sep 24 18:13:14 CEST 2015
On 23/09/2015 17:32, Denis McMahon wrote:
> On Tue, 22 Sep 2015 14:43:55 -0700, Chris Roberts wrote:
>
>> results = 134523 #(Integer)
>
> This appears to be an integer expressed (presumably) in base 10 with 6
> digits
>
>> Desired:
>> results = [1, 2, 3, 4, 5, 2, 3] #(INDEX)
>
> This appears to be a python list of 7 elements, with the first and the
> the third through seventh elements corresponding to the first and the
> second through sixth most significant digits respectively of the
> previously discussed integer.
>
> I can't actually see any direct method of creating the list given from
> the number given.
>
> However, if I understand the intent of the question you meant to ask, you
> might find that the following code does something interesting:
>
> x = 9876543210
> y = []
>
> while x > 0:
> y.append(x % 10)
> x = int(x / 10)
>
> y = list(reversed(y))
> print y
I like the math approach even if the pythonic list string is quicker...
One 'math' way would also be (avoiding the list reverse, but need to
import math):
>>> import math
>>> result = 1234567
>>> digits = int(math.log10(result) + 1)
>>> y = []
>>> for x in range(digits, 0, -1):
number = result % (10 ** x) / (10 **(x-1))
y.append(int(number))
>>> y
[1, 2, 3, 4, 5, 6, 7]
More information about the Python-list
mailing list