如何将已有的列表嵌套字典数据,依据字典key重组数组

 把列表当作队列使用

  你也可以把列表当做队列使用,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为,为了一个元素,要移动整个列表中的所有元素)。

要实现队列,使用 collections.deque,它为在首尾两端快速插入和删除而设计。例如:

>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"]) >>> queue.append("Terry") # Terry arrives >>> queue.append("Graham") # Graham arrives >>> queue.popleft() # The first to arrive now leaves 'Eric' >>> queue.popleft() # The second to arrive now leaves 'John' >>> queue # Remaining queue in order of arrival deque(['Michael', 'Terry', 'Graham'])

如何将已有的列表嵌套字典数据,依据字典key重组数组:

from collections import deque
result_list = [{
    "name": "所属行业",
    "key": "NIC"
}, {
    "name": "工商注册号",
    "key": "REGNO"
}, {
    "name": "统一社会信用代码",
    "key": "UNISCID"
}, {
    "name": "企业名称",
    "key": "ENTNAME"
}]
# 指定排序规则字段
queue_collections = deque(["ENTNAME", "UNISCID", "REGNO", "NIC"])
new_list = []
for queue in xrange(len(queue_collections)):
px_fixed = queue_collections.popleft()
  # 重组数组
new_list += [i for i in result_list if i["key"] == px_fixed]

print new_list
>> [{
'name': '企业名称',
'key': 'ENTNAME'
}, {
'name': '统一社会信用代码',
'key': 'UNISCID'
}, {
'name': '工商注册号',
'key': 'REGNO'
}, {
'name': '所属行业',
'key': 'NIC'
}]

 

猜你喜欢

转载自www.cnblogs.com/zhougreat/p/12689993.html
今日推荐