Python:按键对字典排序
我正试着按键把字典分类 如果我执行以下操作,那么字典的排序如下Python:按键对字典排序,python,Python,我正试着按键把字典分类 如果我执行以下操作,那么字典的排序如下 1, 20 10, 5 11, 3 2, 30 20, 2 相反,我想按如下方式对其进行排序: 1, 20 2, 30 10, 5 11, 3 20, 2 我现有的代码 writer = csv.writer(open('something.csv', 'wb')) keylist = count.keys() keylist.sort() for key in keylist: writer.writerow([ke
1, 20
10, 5
11, 3
2, 30
20, 2
相反,我想按如下方式对其进行排序:
1, 20
2, 30
10, 5
11, 3
20, 2
我现有的代码
writer = csv.writer(open('something.csv', 'wb'))
keylist = count.keys()
keylist.sort()
for key in keylist:
writer.writerow([key, count[key]])
您的字典键是字符串,因此它们按字母顺序排序。首先需要将键转换为整数:
keylist = [int(k) for k in count.keys()]
keylist.sort()
for key in keylist:
writer.writerow([key, count[str(key)]])
看起来你的键是字符串,而不是数字——这是字典排序。不管怎样,我认为stackoverflow上已经有了这样的问题。你可以简单地
keylist.sort(key=int)
,你也可以将排序后的键传递给writerowswriter.writerows(sorted(count.items(),key=lambda x:int(x[0])
count.keys(key=int)
可以工作,因为OP不需要INT,您也不需要再次强制转换,您也可以在dict上迭代。