I have a dictionary that I converted to a list, so I can sort by the first element. The key in the dictionary is a string (of numbers), the value is an integer that is supported in the list.
The list from the dictionary conversion is as follows:
[('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),.........]
There are about 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 "1" first. The selected list is as follows:
[('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), ....]
I would like the list to be sorted by ['0', 3), ('1', 3), ('2', integer), ('3', integer), ... ('240 000', integer )]
Here is my code, where I read a text file in a dictionary, convert it to a list, and use itemgetter to sort by the first element in a nested list. I need a dictionary in the code because I rely heavily on it to look up values ββusing the key. I'm just trying to sort the dictionary for the output file after starting all the processes. Thanks for any help.
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