title: Sorting a nesting list by the first item -- itemgetter not doing the trick
body: <p>I have a dictionary that I've converted to a list so I can sort by the first item.  The key in the dictionary is a string (of numbers), the value is an integer which is maintained in the list.<br>
  The list from the dictionary conversion looks like:</p>
  
  <pre><code>[('228055', 1), ('228054', 1), ('228057', 2), ('228056', 1), ('228051', 1), ('228050', 1),     ('228053', 1), ('203184', 6), ('228059', 1), ('228058', 1), ('89370', 2), ('89371', 3), ('89372', 2), ('89373', 1), ('89374', 1), ('89375', 1), ('89376', 1), ('89377', 1), ('89378', 1), ('89379', 1),.........]
  </code></pre>
  
  <p>There are around 240,000 items in the dictionary.  I would like to sort the dictionary by the first index, but when I use itemgetter(0) it sorts the list by all the "1's" first.  The sorted listed looks like:</p>
  
  <pre><code>[('0', 3), ('1', 3), ('10', 3), ('100', 4), ('1000', 3), ('10000', 1), ('100000', 3), ('100001', 2), ('100002', 3), ('100003', 3), ('100004', 2), ('100005', 2), ('100006', 2), ('100007', 2), ('100008', 2), ('100009', 2), ('10001', 1), ('100010', 3), ('100011', 3), ('100012', 3), ('100013', 2), ('100014', 1), ('100015', 1), ('100016', 1), ('100017', 1), ('100018', 1), ....]
  </code></pre>
  
  <p>I would like the list to be sorted by ['0', 3), ('1', 3), ('2', integer), ('3', integer),...('240,000', integer)] </p>
  
  <p>Here's my code where I'm reading in a text file to a dictionary, converting to a list and used itemgetter to sort by first item in nested list.  I need the dictionary in the code because I heavily depend on it to look up values by the key.  I'm only trying to sort the dictionary for the output file once all the processes are ran.  Thanks for any help.</p>
  
  <pre><code>import sys, string, csv, arcpy, os, fileinput, traceback
  from arcpy import env
  from operator import itemgetter
  
  
  #Creating a dictionary of FID: LU_Codes from external txt file
  text_file = open("H:\SWAT\NC\FID_Whole_Copy.txt", "rb")
  #Lines = text_file.readlines()
  FID_GC_dict =  dict()
  reader = csv.reader(text_file, delimiter='\t')
  for line in reader:
      FID_GC_dict[line[0]] = int(line[1])
  text_file.close()
  
  dict_List = [(x, FID_GC_dict[x]) for x in FID_GC_dict.keys()]
  dict_List.sort(key=itemgetter(0))
  print dict_List
  </code></pre>