я хранящийся namedtuple как значение в словаре, как показано нижеКак сортировать namedtuple хранится в значении Словаря по значению кортежа
AssetList = {}
Asset = namedtuple('Asset_Desc', 'value weight value_per_unit')
for i in range(0,items):
AssetList[i] = Asset(values[i], weights[i], values[i]/weights[i])
print AssetList
Я хотел бы отсортировать словарь, основанный на «value_per_unit», так что я написал что-то вроде ниже. Но мне интересно, что должно быть в «ключевом»? Я попробовал itemgetter и attrgetter, но, похоже, у меня неверный индекс, я не могу понять, как обращаться к Asset.value_per_unit. Есть идеи?
Sorted_AssetList = sorted(AssetList.iteritems(), key=???)
print Sorted_AssetList
здорово! Я изменил его на Sorted_Asset = sorted (AssetList.iteritems(), key = lambda (k, v): v.value_per_unit, reverse = True), поэтому его легче подготовить (ключ, значение) вместо пары. Благодаря! – twfx
@twfx: Последовательность распаковки в аргументах функции была удалена в Python 3 (хотя я согласен, что она полезна для 'lambda'). – Blender
arh .... Я тоже сделал «список», хммм ... кажется, лучше переходить от словаря к списку. Благодарю. Мне нравится твоя идея. – twfx