码迷,mamicode.com
首页 > 编程语言 > 详细

python 数据分类

时间:2017-09-08 00:12:11      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:pytho   span   log   default   atom   types   lambda   put   end   

 

#!/usr/bin/env python
# coding: utf-8

import six

def sort_items_by_key(items, key):
    result = {}
    for k, v in key.items():
        if isinstance(v, (six.string_types, six.integer_types)):
            tmp = filter(lambda x: x.get(k) == v, items)
            result.setdefault(v, []).extend(tmp)
        elif isinstance(v, (list, set, tuple)):
            for vv in v:
                tmp = filter(lambda x: x.get(k) == vv, items)
                result.setdefault(vv, []).extend(tmp)
    return result


def test_items_key():
    items = [
        {"id": 1, "name": "atom", "age": 25},
        {"id": 2, "name": "shylock", "age": 26},
        {"id": 3, "name": "john", "age": 26}
    ]

    key = {"id": [1,2,3], "age": 26}

    print(sort_items_by_key(items, key))

if __name__ == "__main__":
    test_items_key()

 

output:
    {1: [{age: 25, id: 1, name: atom}], 26: [{age: 26, id: 2, name: shylock}, {age: 26, id: 3, name: john}], 3: [{age: 26, id: 3, name: john}], 2: [{age: 26, id: 2, name: shylock}]}

 

python 数据分类

标签:pytho   span   log   default   atom   types   lambda   put   end   

原文地址:http://www.cnblogs.com/jachin/p/7492262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!