Tengo un diccionario que he convertido a una lista para que pueda ordenar por el primer elemento. La clave en el diccionario es una cadena (de números), el valor es un número entero que se mantiene en la lista.
La lista de la conversión diccionario parece:Ordenando una lista de anidamiento por el primer elemento - itemgetter no haciendo el truco
[('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),.........]
hay alrededor de 240.000 artículos en el diccionario. Me gustaría ordenar el diccionario por el primer índice, pero cuando uso itemgetter (0) ordena primero la lista por todos los "1". Las miradas listados ordenados como:
[('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), ....]
me gustaría la lista para ser clasificado por [ '0', 3), ('1', 3), ('2', entero), ('3' , entero), ... ('240,000', entero)]
Aquí está mi código en el que estoy leyendo un archivo de texto en un diccionario, convirtiéndolo en una lista y utilizando itemgetter para ordenar por el primer elemento en la lista anidada . Necesito el diccionario en el código porque dependo mucho de él para buscar valores por la clave. Solo estoy tratando de ordenar el diccionario para el archivo de salida una vez que se ejecutan todos los procesos. Gracias por cualquier ayuda.
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
'text_file = abierto (r "H: \ SWAT \ NC \ FID_Whole_Copy.txt")' – kev