Test_Subject - 1 year ago 175
Python Question

# Python: How to sort the alphabet in a list without sorted functions?

This is not based on efficiency, and has to be done with only a very very basic knowledge of python (Strings, Tuples, Lists basics) so no importing functions or using sort/sorted. (This is using Python 2.7.3).

For example I have a list:

``````unsort_list = ["B", "D", "A", "E", "C"]
sort_list = []
``````

sort_list needs to be able to print out:

``````"A, B, C, D, E"
``````

I can do it with numbers/integers, is there a similar method for alphabetical order strings? if not what would you recommend (even if it isn't efficient.) without importing or sort functions.

Here's a very short implementation of the Quicksort algorithm in Python:

``````def quicksort(lst):
if not lst:
return []
return (quicksort([x for x in lst[1:] if x <  lst[0]])
+ [lst[0]] +
quicksort([x for x in lst[1:] if x >= lst[0]]))
``````

It's a toy implementation, easy to understand but too inefficient to be useful in practice. It's intended more as an academic exercise to show how a solution to the problem of sorting can be written concisely in a functional programming style. It will work for lists of comparable objects, in particular for the example in the question:

``````unsort_list = ['B', 'D', 'A', 'E', 'C']
sort_list   = quicksort(unsort_list)

sort_list
> ['A', 'B', 'C', 'D', 'E']
``````
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download