У меня есть этот словарь:
statuses = {
'pending' : {'status_for':'all', 'position':1},
'cancelled' : {'status_for':'all','position':2},
'approved' : {'status_for':'owner', 'position':1},
'rejected - owner' : {'status_for':'owner', 'position':2},
'accepted' : {'status_for':'dev', 'position':1},
'rejected - developer' : {'status_for':'dev', 'position':3},
'closed' : {'status_for':'dev', 'position':5},
}
У меня также есть функция, чтобы вытащить все значения status_for
либо owner
, либо dev
, которые выглядят так и помещают их в PyQt QComboBox:
for s in statuses:
if statuses[s]['status_for'] == "dev" or statuses[s]['status_for'] == "all":
cb_developer_status.addItem(s.capitalize(), s)
Я хотел бы заказать их по значению position
. Каков хороший способ сделать это, так что, когда я заполняю combobox, у меня есть это в предопределенном порядке?
Я понимаю, что вышеприведенный фрагмент проверяет как "dev", так и "all", мое предположение прямо сейчас состоит в том, что мне пришлось бы дважды прокручивать словарь, чтобы получить два отдельных блока в желаемом порядке (т.е. "все" появляется перед "dev" ).
Я видел этот пост, но я не уверен, как преобразовать этот ответ в нечто, что это словарь словарей.