ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一行代码的高阶函数

2022-05-25 11:35:49  阅读:146  来源: 互联网

标签:status 函数 代码 30 print sorted 高阶 id name


'''

给定一数组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') )

标签:status,函数,代码,30,print,sorted,高阶,id,name
来源: https://www.cnblogs.com/wkhzwmr/p/16308655.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有