我有一个字典,我已经转换为列表,所以我可以按第一项排序.字典中的键是一个字符串(数字),该值是一个在列表中维护的整数.
字典转换中的列表如下所示:
[('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),.........]
Run Code Online (Sandbox Code Playgroud)
字典中有大约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', …Run Code Online (Sandbox Code Playgroud) 我有一个带有id值的570 x 800矩阵.如果找到每个项目的相邻邻居,我想做什么.除非单元格沿边界,否则最大邻居数为8.在这种情况下,将有三个邻居.我想将邻居附加到列表中.当每个单元格都有x和y坐标时,我看到了用于查找邻居的帖子,这非常有用,但是如何在没有坐标的情况下修改代码.ids以字符串形式出现,因为我将它用作字典中的键.任何帮助,将不胜感激.
我正在使用嵌套列表在我创建的字典中查找值。然后我想将找到的值附加到列表中。我不知道如何编码的问题是如何将附加的值保留在同一个嵌套列表结构中?这是我将值附加到空列表的最后一行的代码。
#Creating a dictionary of FID: LU_Codes from external txt file
import sys, arcpy, string, csv
text_file = open("H:\SWAT\NC\FID_Whole.txt", "r")
Lines = text_file.readlines()
text_file.close()
FID_LU = map(string.split, Lines)
#print FID_LU
FID_GC_dict = dict(FID_LU)
Neighbors_file = open("H:\SWAT\NC\Sh_Neighbors2.txt","r")
Entries = Neighbors_file.readlines()
Neighbors_file.close()
Neighbors_List = map(string.split, Entries)
print Neighbors_List
#FID = [x[0] for x in Neighbors_List]
#print FID
gridList = []
for list in Neighbors_List:
for item in list:
#print FID_GC_dict[item]
gridList.append(int(FID_GC_dict[item]))
print gridList
Run Code Online (Sandbox Code Playgroud)
这是邻居列表的输出(正确):
[['0', '1', '11', '12', '13'], ['1', '0', '2', …Run Code Online (Sandbox Code Playgroud)