2016-09-15 16 views
1

私はいくつかの注釈付きテキスト出力を処理しています。私がやりたいことは、配列の最初の要素でソートこれで配列のPythonで辞書の値を並べ替える

'Adenotonsillectomy': ['0', '18', '1869', '1716'], 
'OSAS': ['57', '61'], 
'apnea': ['41', '46'], 
'can': ['94', '97', '1796', '1746'], 
'deleterious': ['103', '114'], 
'effects': ['122', '129', '1806', '1752'], 
'for': ['19', '22'], 
'gain': ['82', '86', '1776', '1734'], 
'have': ['98', '102', ['1776 1786 1796 1806 1816'], '1702'], 
'health': ['115', '121'], 
'lead': ['67', '71', ['1869 1879 1889'], '1695'], 
'leading': ['135', '142', ['1842 1852'], '1709'], 
'may': ['63', '66', '1879', '1722'], 
'obesity': ['146', '153'], 
'obstructive': ['23', '34'], 
'sleep': ['35', '40'], 
'syndrome': ['47', '55'], 
'to': ['143', '145', '1852', '1770'], 
'weight': ['75', '81'], 
'when': ['130', '134', '1842', '1758'], 
'which': ['88', '93', '1786', '1740']} 

としてのdictを並べ替え::私はこれまで持っていることは要素のキーとの関係配列として注釈を持つ辞書です

'Adenotonsillectomy': ['0', '18', '1869', '1716'] 
'for': ['19', '22'], 
'obstructive': ['23', '34'], 
'sleep': ['35', '40'], 
'apnea': ['41', '46'], 
etc... 

は、今私は値でソートする演算子を使用しようとしました:私は取得しています出力はまだ間違っているしかし

sorted(dependency_dict.items(), key=lambda x: x[1][0]) 

[('Adenotonsillectomy', ['0', '18', '1869', '1716']), 
('deleterious', ['103', '114']), 
('health', ['115', '121']), 
('effects', ['122', '129', '1806', '1752']), 
('when', ['130', '134', '1842', '1758']), 
('leading', ['135', '142', ['1842 1852'], '1709']), 
('to', ['143', '145', '1852', '1770']), 
('obesity', ['146', '153']), 
('for', ['19', '22']), 
('obstructive', ['23', '34']), 
('sleep', ['35', '40']), 
('apnea', ['41', '46']), 
('syndrome', ['47', '55']), 
('OSAS', ['57', '61']), 
('may', ['63', '66', '1879', '1722']), 
('lead', ['67', '71', ['1869 1879 1889'], '1695']), 
('weight', ['75', '81']), 
('gain', ['82', '86', '1776', '1734']), 
('which', ['88', '93', '1786', '1740']), 
('can', ['94', '97', '1796', '1746']), 
('have', ['98', '102', ['1776 1786 1796 1806 1816'], '1702'])] 

私は何がうまくいかないのか分かりません。どんな助けもありがとうございます。

答えて

5

エントリはアルファベット順にソートされます。整数値でソートする場合は、まず値をintに変換してください。

sorted(dependency_dict.items(), key=lambda x: int(x[1][0])) 
+0

ありがとうございます!はい、私はキャストするのを忘れました。それがトリックでした。 – jdv12

関連する問題