我一直在调试我一直试图正确运行的程序,这一切都归结为如下第一行代码。我有一个键(字符串)和值(整数)的字典。我试图按升序对这些进行排序,以便我可以获得最小的元素。但是,返回值的顺序没有意义。它不是首先返回最小的,实际上它返回最大的(即使文档明确表示它应该按升序排列)。它也不按字母顺序排列,即使第一个字符串是 AAAAA..AAA - 但它不遵循字母顺序。我什至不确定如何访问 sorted 返回的元素以及它是什么类型。根据我在实验时收到的错误,它是一个“列表”。我怎么解决这个问题?这一行使计算全错了。
kmerMin = (sorted(topkmerdict,key=lambda x: x[1]))
print kmerMin
print kmerMin[0]
print topkmerdict[kmerMin[0]]
请您参考如下方法:
你写的返回字典键的列表,按键的第二个字符的值排序(x[1] 挑选出键的第二个字符x).
不清楚你想要什么。例如,如果您希望键按其关联的值 排序,那么可以采用以下一种方法:
>>> d = {"a": 12, "b": 6, "c": 3}
>>> sorted(d, key=lambda k: d[k])
['c', 'b', 'a']
另一种方法完全相同,速度更快但可能不太明显:
>>> sorted(d, key=d.__getitem__)
['c', 'b', 'a']
