Я знаю, что есть похожие вопросы, но я не могу найти ответ на свою конкретную проблему. Поэтому у меня есть тысячи записей, которые имеют следующий формат:Сортировка словаря на основе наибольшей суммы значений массива
geneA 6 0 0
geneB 5 0 0
geneC 4 0 0
geneD 3 0 0
geneE 0 6 1
Выше приведен пример вывода, что я получаю, но то, что я хочу, чтобы данные, которые должны быть упорядочены таким образом, что первая линия самая большая сумма его значений массива (иначе я хочу, чтобы генE был первым в этом выпуске, потому что он имеет наибольшую сумму). В моем словаре гены являются ключами, а список чисел - значением, создающим пары ключ-значение. В настоящее время это мой код, который печатает в порядке убывания самые большие и самые низкие значения в соответствии с первым столбцом чисел, а не сумму, которую я хочу.
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 похоже, не соответствует тому, как вы выбираете элементы в нем. Можете ли вы отредактировать вопрос, чтобы показать ** точный ** способ форматирования вашего диктата (имеет ли он список чисел или это строка, разделенная пробелом и т. Д.)? – Brien
Я просто сократил заявление печати. Он выглядит так: клавиша печати, словарь [ключ] [0], словарь [ключ] [1], словарь [ключ] [2] – dahlia