gpt4 book ai didi

python - 按第一项对嵌套列表进行排序——itemgetter 没有做到这一点

转载 作者:太空狗 更新时间:2023-10-29 18:16:12 26 4
gpt4 key购买 nike

我有一本已转换为列表的字典,因此我可以按第一项排序。字典中的键是(数字的)字符串,值是列表中维护的整数。
字典转换的列表如下所示:

[('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', integer), ('3', integer),...('240,000 ', 整数)]

这是我的代码,我将文本文件读入字典,转换为列表并使用 itemgetter 按嵌套列表中的第一项排序。我需要代码中的字典,因为我严重依赖它来按键查找值。一旦运行了所有进程,我只是试图对输出文件的字典进行排序。感谢您的帮助。

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

最佳答案

那是因为它们是字符串。

key=lambda x: int(x[0])

关于python - 按第一项对嵌套列表进行排序——itemgetter 没有做到这一点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com