मेरे पास एक शब्दकोश है जिसे मैंने एक सूची में परिवर्तित कर दिया है, इसलिए मैं पहले आइटम को सॉर्ट कर सकता हूं। शब्दकोश में कुंजी एक स्ट्रिंग (संख्याओं) है, मान एक पूर्णांक है जो सूची में बनाए रखा जाता है।
शब्दकोश रूपांतरण से सूची लगता है:पहले आइटम द्वारा घोंसले की सूची को सॉर्ट करना - itemgetter चाल नहीं कर रहा है
[('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),.........]
लगभग शब्दकोश में 240,000 आइटम हैं। मैं पहली अनुक्रमणिका द्वारा शब्दकोश को सॉर्ट करना चाहता हूं, लेकिन जब मैं itemgetter (0) का उपयोग करता हूं तो यह सूची को सभी "1" पहले सूचीबद्ध करता है। की तरह हल कर सूचीबद्ध दिखता है:
[('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), ....]
मैं, [ '0', 3), ('1', 3), ('2', पूर्णांक) के अनुसार क्रमबद्ध किए जाने की सूची चाहते हैं ('3' , पूर्णांक), ... ('240,000', पूर्णांक)]
यहां मेरा कोड है जहां मैं एक शब्दकोश में एक टेक्स्ट फ़ाइल में पढ़ रहा हूं, एक सूची में परिवर्तित हो रहा हूं और नेस्टेड सूची में पहले आइटम द्वारा सॉर्ट करने के लिए इस्तेमाल किए गए आइटमजटर । मुझे कोड में शब्दकोश की आवश्यकता है क्योंकि मैं कुंजी पर मूल्यों को देखने के लिए इस पर निर्भर करता हूं। एक बार सभी प्रक्रियाओं को चलाने के बाद मैं आउटपुट फ़ाइल के लिए शब्दकोश को सॉर्ट करने की कोशिश कर रहा हूं। किसी भी मदद के लिए धन्यवाद।
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 = खुला (r" एच: \ स्वाट \ एनसी \ FID_Whole_Copy.txt ")' – kev