+ 1
Help appreciated to simplify code! Sort input numbers.
I coded a little program that receives input numbers from user and sorts them from low to high in a list. As it is, the program works all right but I had to include a few IFs to manage special cases I didn't know how to include in the main block... (e.g. when it is the first number in the list, or the highest/lowest yet to appear...) Any ideas very much appreciated! https://code.sololearn.com/chZ410PNhBRH/#py
5 ответов
+ 1
Actually I didn't know there were built in sorting methods... I'm quite new to python! I'll investigate those but for now I would like to optimize my own sorting code! Many thanks
+ 1
If you want to insert each element in place at the moment it's given, keeping things simple, I would go with a for loop:
for i in range(len(thatlist)):
if n<thatlist[i]:
thatlist.insert(i, n)
break
else:
thatlist.append(n)
The else part is outside of the for loop and will only be executed if there is no break.
+ 1
Your code works fine. Because the SoloLearn online compiler requires all inputs to be entered at once, they have to be on separate lines. Try this:
2 (enter)
4 (enter)
3 (enter)
quit (submit)
you should get [2, 3, 4]
(otherwise you get an EOFError)
You won't get that problem with, e. g. IDLE, VS Code or Pydroid3. See https://www.google.ca/search?q=sololearn+input+problem&oq=sololearn+input+problem&aqs=chrome..69i57j33.14884j0j4&sourceid=chrome-mobile&ie=UTF-8
0
Do you explicitly want to write your own sorting method instead of using the built-in ways?
0
Ok, many thanks for your help!