在python字典中按实际值排序

在python字典中按实际值排序,python,sorting,dictionary,Python,Sorting,Dictionary,我在分类字典方面有困难。我使用下面的代码对它们进行排序 sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) 但问题是排序不是按实际值进行的 asdl 1 testin 42345 alpha 49 参考: 我需要的项目排序如下 asdl 1 alpha 49 testin 42345 您所经历的行为是由比较变量的类型引起的。要解决此问题,请将其强制转换为整数 orted(x.iteritems(), key=lambd

我在分类字典方面有困难。我使用下面的代码对它们进行排序

sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) 
但问题是排序不是按实际值进行的

asdl 1
testin 42345
alpha 49
参考:

我需要的项目排序如下

asdl 1
alpha 49
testin 42345

您所经历的行为是由比较变量的类型引起的。要解决此问题,请将其强制转换为
整数

orted(x.iteritems(), key=lambda x: int(x[1]))
最终结果将是:

[('asdl', '1'), ('alpha', '49'), ('testin', '42345')]

它是听写列表是您的键是字符串还是整数?{'alpha':'49','asdl':'1','testin':'42345'}是听写列表是的,这是有效的。但是,当我更新dict时,我正在执行x.update({line.split()[0]:line.split()[1]})。默认情况下,它会将其作为字符串?是的,它会。由于您正在拆分一个
字符串
,因此结果将是一个
字符串
。但是,如果您确定返回的值始终是
整数,则可以通过调用
int()
将其强制转换为
Integer