【发布时间】:2015-09-16 11:41:23
【问题描述】:
我知道那里有类似的问题,但我找不到具体问题的答案。所以我有成千上万的条目,格式如下:
geneA 6 0 0
geneB 5 0 0
geneC 4 0 0
geneD 3 0 0
geneE 0 6 1
以上是我得到的输出示例,但我想要的是对数据进行排序,以使第一行的数组值之和最大(也就是我希望geneE 成为第一个在这个输出中,因为它的总和最大)。在我的字典中,基因是键,数字列表是值,创建键值对。目前,这是我的代码,它根据第一列数字按降序打印出从最大值到最小值,而不是我想要的总和。
for key,value in sorted(dictionary.items(),key=lambda i:i[1][0],reverse=True):
print key,dictionary[key][0],dictionary[key][1],dictionary[key][2]
我正在努力弄清楚如何在 Python 中声明我希望它根据列表值的总和进行排序,而不仅仅是列表的第一个值。任何帮助将不胜感激!谢谢你。
【问题讨论】:
-
您描述 dict 的方式似乎与您在其中选择项目的方式不匹配。您可以编辑问题以显示您的 dict 格式化的确切方式(它是否有数字列表或者它们是空格分隔的字符串等)?
-
我只是缩短了打印语句。它看起来像这样:打印键,字典[键][0],字典[键][1],字典[键][2]
标签: python sorting dictionary key-value