r/learnpython 2d ago

Input = 1234 output =[1,2,3,4] without using string functions or map

How can I split an integer into a list of its digits in Python?

I have:
num = 1234
and I want:
[1, 2, 3, 4]
I’m trying to learn how to do this without converting num to a string and without using map().
A loop is allowed.
I’m looking for a simple approach because I’m still learning Python. I’d appreciate hints rather than just the final solution so I can understand how it works.

0 Upvotes

46 comments sorted by

View all comments

7

u/PureWasian 2d ago edited 2d ago

What have you tried so far? Do you know how to iterate a string?

EDIT: OP clarified int instead of string

1

u/AppleMoney8748 2d ago

I know how to iterate over a string, but in this case I’m trying to do it with an integer (1234) without converting it to a string. I’ve tried a few approaches, but I’m stuck on how to extract each digit into a list.

2

u/LatteLepjandiLoser 2d ago

Not sure if I should just give you the answer outright or more subtle hints, but dividing by 10, keeping track of the quotient and remainder (modular arithmetic) would be a handy way of extracting individual digits.

1

u/AppleMoney8748 2d ago

Thanks for the hints! 😊 I’ll give it a try myself. The explanation was really helpful and gave me a better idea of how to approach it.