Python根据字典值降序中的第一个元素打印字典

时间:2018-05-16 01:50:46

标签: python python-3.x

我有一个dict喜欢这个:

mydict =  {
'Peter': [21, 2, 42.0], 
'Kate': [15, 3, 45.0],
'Tom': [16, 6, 96.0],
'Lucy': [28, 4, 112.0],
 }

键是字符串,值是列表。 我想根据字典值降序中的第一个元素打印mydict。

例如,我想要这个输出:

 'Lucy',28,4,112.0
 'Peter',21,2,42.0
 'Tom',16,6,96.0
 'Kate',15,3,45.0

如何输出这样的结果?

1 个答案:

答案 0 :(得分:3)

您可以迭代dict.items的排序结果,并使用str.join

mydict = {
'Lucy': [28, 4, 112.0], 
'Peter': [21, 2, 42.0], 
'Kate': [15, 3, 45.0], 
'Tom': [16, 6, 96.0]}
for a, b in sorted(mydict.items(), key=lambda x:x[-1][0] if isinstance(x, list) else x, reverse = True):
  print('{},{}'.format(a, ','.join(map(str, b)) if isinstance(b, list) else b))

输出:

Lucy,28,4,112.0
Peter,21,2,42.0
Tom,16,6,96.0
Kate,15,3,45.0