排序列表中的字典元素 [英] Sort dictionary elements in list

查看:193
本文介绍了排序列表中的字典元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于此列表,

  [{u'status':u'Active',u'name':u' X',u'orgID':u'109175',u'type':u'Created Section','class':'addbold'},
{u'status':u'Active',u'名称':u'A',u'orgID':u'109175',u'type':u'Created Section','class':'addbold'},
{u'status':u'活动',你的名字':u'G',u'orgID':u'109175',u'type':u'Created Section','class':'addbold'},
{u'状态':u'Active',u'name':u'D',u'orgID':u'109175',u'type':u'Created Section','class':'addbold'}]

我想根据字典的名称键按字母顺序排列列表项。



所以输出就像这样,

  [{u'status':u'Active ',你的''你''你''你''你''u'109175',你的名字':u'A','class':'addbol d'},
{u'status':u'Active',u'type':u'Created Section',u'orgID':u'109175',u'name':u'D' 'class':'addbold'},
{u'status':u'Active',u'type':u'Created Section',u'orgID':u'109175',u'name': u'G','class':'addbold'},
{u'status':u'Active',u'type':u'Created Section',u'orgID':u'109175'你的名字':u'X','class':'addbold'}]

我排序列表中的列表项目?

解决方案

已排序 list.sort 接受可选的函数参数。函数的返回值用于比较元素的顺序。

 >>> lst = [...] 
>>>排序(lst,key = lambda x:x ['name'])
[{u'status':u'Active',u'type':u'Created Section',u'orgID':u' 109175',u'name':u'A','class':'addbold'},
{u'status':u'Active',u'type':u'Created Section',u' orgID':u'109175',u'name':u'D','class':'addbold'},
{u'status':u'Active',u'type':u'Created 'u'orgID':u'109175',你的名字'u'G','class':'addbold'},
{u'status':u'Active',u'type ':u'Created Section',u'orgID':u'109175',u'name':u'X','class':'addbold'}]
pre>

operator.itemgetter('name') 可以用于代替 lambda 函数。

  import operator 
sorted(lst,key = operator.itemgetter('name'))


For this list,

[{u'status': u'Active', u'name': u'X', u'orgID': u'109175', u'type': u'Created Section','class': 'addbold'} , 
{u'status': u'Active', u'name': u'A', u'orgID': u'109175', u'type': u'Created Section', 'class': 'addbold'} ,
{u'status': u'Active', u'name': u'G', u'orgID': u'109175', u'type': u'Created Section', 'class': 'addbold'} ,
{u'status': u'Active', u'name': u'D', u'orgID': u'109175', u'type': u'Created Section', 'class': 'addbold'}]

I want to arrange the list items in alphabetic order based on name key of dictionary.

So output would be like this,

[{u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'A', 'class': 'addbold'} ,
{u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'D', 'class': 'addbold'} ,
{u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'G', 'class': 'addbold'} , 
{u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'X', 'class': 'addbold'}]

How can I sort list dict items in this list?

解决方案

sorted or list.sort accept optional key function parameter. The return value of the function is used to compare elements order.

>>> lst = [...]
>>> sorted(lst, key=lambda x: x['name'])
[{u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'A', 'class': 'addbold'},
 {u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'D', 'class': 'addbold'},
 {u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'G', 'class': 'addbold'},
 {u'status': u'Active', u'type': u'Created Section', u'orgID': u'109175', u'name': u'X', 'class': 'addbold'}]

operator.itemgetter('name') can be used in place of the lambda function.

import operator
sorted(lst, key=operator.itemgetter('name'))

这篇关于排序列表中的字典元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆