Skip to main content
 首页 » 编程设计

python之按数组python中的字典值排序

2025年05月04日25mfryf

好的,我一直致力于处理一些带注释的文本输出。到目前为止,我所拥有的是一个以注释为键和关系元素数组的字典:

'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']} 

我想做的是按数组中的第一个元素排序并将字典重新排序为:

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

我不确定出了什么问题。感谢您的帮助。

请您参考如下方法:

条目按字母顺序排序。如果要按整数值对它们进行排序,请先将值转换为 int:

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