2016-09-15 4 views
1

Okay, also habe ich an der Verarbeitung von annotierten Textausgabe gearbeitet. Was ich bis jetzt habe, ist ein Wörterbuch mit Annotation als Schlüssel und Beziehungen eine Reihe von Elementen:Sortierung nach Wörterbuch-Wert in Array 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']} 

Was ich tun möchte, ist eine Art dies durch das erste Element in dem Array und den Neuordnungs die dict als:

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

jetzt habe ich versucht, Operator zu verwenden, indem Wert zu sortieren:

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

jedoch der Ausgang ich bin immer noch nicht korrekt ist:

[('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'])] 

Ich bin mir nicht sicher, was schief geht. Jede Hilfe wird geschätzt.

Antwort

5

Die Einträge sind in alphabetischer Reihenfolge sortiert. Wenn Sie sie nach einem Integer-Wert sortieren möchten, konvertieren Sie den Wert zuerst in int:

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

Ah danke! Ja, ich habe vergessen zu spielen. Das hat den Trick gemacht. – jdv12