• 一行代码的高阶函数


    '''
    
    给定一数组a=[{"id": 1, "status": 2}, {"id": 2, "status": 1}, {"id": 3, "status": 1}],
    请将数组a转换为以status为key,
    status对应的对象组合在一起做为value的字典b,
    即b={1: [{"id": 2, "status": 1}, {"id": 3, "status": 1}], 2: [{"id": 1, "status": 2}]}
    '''
    
    a=[{"id": 1, "status": 2}, {"id": 2, "status": 1}, {"id": 3, "status": 1}]
    ## 先获取相同的status字段的字典
    def func(x1):
        a = []
        b = {}
        for x in x1:
            a.append(x['status'])
            if x['status'] in a:
                b[x['status']] = x
        return b
    def func1(x):
        a = []
        b = {}
        a.append(x['status'])
        a.sort()
        print(a)
        if x['status'] in a:
            b[x['status']] = [x]
        b = sorted(b) # 字典的话默认按照键来
        print(b)
        return b
    print(func(a))
    print(list(map(func1,a)))
    b = []
    c= {}
    # for dist_a in a:
    #     b.append(dist_a.get('status'))
    #     for i in b:
    #         if i == dist_a.get('status'):
                
    '''
    请使用列表推倒式将列表a=[30, 12, 66, 19, 39, 43, 36, 57, 121]
    中的数能整除列表b=[3, 5, 1]中的数组合在一起配对,
    即30可以整出3,所以30和3为一对。即最终结果为[(30,3), (30, 5)....,(121, 1)]
    '''
    # a=[30, 12, 66, 19, 39, 43, 36, 57, 121]        
    # b=[3, 5, 1]
    # c = [(i,j)for i in a for j in b if i % j==0]
    # print(c)
    
    '''
    给定数组
    a=[{"id": 2, "name": "test"}, {"id": 5, "name": "mm"}, {"id": 3, "name": "tt"}],
    请将数组a的id按照指定数组b=[3, 2, 5]的顺序重新排序。
    '''
    ## 字典排序
    # b = {{"id": 2, "name": "test"}, {"id": 5, "name": "mm"}, {"id": 3, "name": "tt"}}
    # print(sorted(b.items(), key=lambda x: x[1]))
    
    
    # 这样多个字典赋值给一个对象就变成了元组
    # a={"id": 2, "name": "test"}, {"id": 5, "name": "mm"}, {"id": 3, "name": "tt"} 
    a=[{"id": 2, "name": "test"}, {"id": 5, "name": "mm"}, {"id": 3, "name": "tt"}]
    b=[3, 2, 5] # 列表迭代返回元素
    # def demo(b):
        # for i in b:
        #     return i # 这样只能使用一次
        # return b.iter()
    
    ## 迭代器使用场景
    ### 对于sorted对迭代的元素本身就会提取,然后按照顺序迭代每个元素,这时候排序可以按照指定元素的键或者值
    list_a = sorted(a,key=lambda b: b ) # sorted是如何返回值呢
    print(list_a)
    
    
    ### 根据指定的值排序;从列表中获取值指定,指定的值对对字典的id来卸货
    
    ## 真实场景,真实需求,风险点
    # lambda默认直接返回函数
    # list_a = sorted(a,lambda x: a[x].get('id') )
    
  • 相关阅读:
    linux常用命令
    10.8统计英文词频
    9月10号作业
    华氏温度与摄氏温度转换
    小故事
    Java的工厂模式(三)
    Javascript实现图片翻转
    Java的工厂模式(二)
    Java的工厂模式(一)
    Java新建线程的两种方式
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/16308655.html
Copyright © 2020-2023  润新知