sorted( "This is a test string".split(), key=str.lower) # ['a', 'is', 'string', 'test', 'This']
# key is called once on each list element prior to making comparisons
import operator
list_of_dicts.sort( key=operator.itemgetter( 'name' ) ) # sort is in place sorting so slightly faster than sorted() which makes a copy
newlist = sorted( original, key=itemgetter( 'name' ), reverse=True ) # reversed , or of course .reverse()