gpt4 book ai didi

python - 根据数组值的最大总和对字典进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:01:48 25 4
gpt4 key购买 nike

我知道那里有类似的问题,但我找不到我的具体问题的答案。所以我有数千个条目,格式如下:

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 中声明我希望它根据列表值的总和而不仅仅是列表的第一个值进行排序。任何帮助将不胜感激!谢谢。

最佳答案

我假设您的字典格式如下:

{'geneA' : [6,0,0] ,...}

这个关键函数将正确输出按照你想要的顺序排序的列表:

>>> for key,value in sorted(dictionary.items(),key=lambda i:sum(i[1]),reverse=True):
print key,value


geneE [0, 6, 1]
geneA [6, 0, 0]
geneB [5, 0, 0]
geneC [4, 0, 0]
geneD [3, 0, 0]

关于python - 根据数组值的最大总和对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com