# Least to greatest browsing

• posted
0

Hey, I am trying to make a program that you enter a bunch of numbers and it then returns all the numbers but in order least to greatest.
I haven't gotten anywhere but I was wondering how would you define the numbers least to greatest?

• posted
0

``````numbers = (55, -55, 5, -5, 0.005, -0.005, 0)
print(sorted(numbers))
``````

• posted
0

When I try this

``````print(sorted(input()))
``````

It gives me this, input is 5, 6,7,4

``````[' ', ' ', ' ', ',', ',', ',', '4', '5', '6', '7']
``````

• posted
0

`input()` returns a `str` which is iterable.
`sorted` takes an iterable, and returns a sorted list.

So, `sorted('bca')` returns a list of the sorted characters, `['a', 'b', 'c']`.

If you want to interpret the input as a list of some kind, you need to `split` it, perhaps using spaces or commas, depending on what you want your input format to be. i.e `sorted(input().split(','))`. of course, if you want to sort NUMBERS, you need to convert to a number before sorting, otheriwse 11 comes before 2.

``````sorted([int(x) for x in input().split(',')])
``````

or maybe more robust

``````sorted(ast.literal_eval(input()))
``````

which safely evaluates the input as a python expression, so a comma separated sequence becomes a tuple that can then be sorted.

• posted
0

Thanks @JonB, this helped a lot!

• posted
0

`print(sorted(input().replace(',', ' ').split()))`

• posted
1

ccc, try typing

``````1, 2, 3, 20, 111
``````

and you will see the issue. your code (and my first similar attempt) sorts strings, not numbers. hence the literal_eval. int(split...) would also work, assuming the numbers are ints only, otherwise float(split...) would work similarly.

Internal error.

Oops! Looks like something went wrong!