zoukankan      html  css  js  c++  java
  • sorted 、 filter 、 map

    sorted   排序函数

    内置函数中提供了一个通用的排序方案 ,返回一个新的列表,不会改变原数据

    语法: sorted(iterable, key, reverse)
    key: 排序方案, sorted函数内部会把可迭代对象中的每一个元素拿出来交给后面的key
    后面的key计算出一个数字. 作为当前这个元素的权重, 整个函数根据权重进行排序
    reverse 参数默认为False(升序)
    lst = [
        {'name':"汪峰","age":48},
        {"name":"章子怡",'age':38},
        {"name":"alex","age":39},
        {"name":"wusir","age":32},
        {"name":"赵一宁","age":28}
        ]

    # 根据年龄排序 ll
    = sorted(lst, key=lambda le: le['age']) print(ll)

    # 根据名字长度排序
    ll = sorted(lst, key=lambda le: len(le['name']))
    print(ll)


    filter 过滤函数
    filter(function, iterable)  返回一个迭代器 可通过for list() next() 取值
    把可迭代对象中的每一个元素交给前面的函数进行筛选. 函数返回True或者False
    #留下大于60分的
    lst = [ {"name":"汪峰", "score":48}, {"name":"章子怡", "score":39}, {"name":"赵一宁","score":97}, {"name":"石可心","score":90} ] ll = filter(lambda el: el['score'] > 60, lst) print(ll) #==》<filter object at 0x02CA08B0> 迭代器地址 print(list(ll)) #==》[{'name': '赵一宁', 'score': 97}, {'name': '石可心', 'score': 90}]
    map    映射函数
    语法  map(function, iterable)   返回一个迭代器于filter()类似
    把可迭代对象中的数据交给前面的函数进行执行. 返回值就是map的处理结果
    # 返回一个可迭代数据的平方
    lst = [1, 2, 3] ll = map(lambda n : n**2, lst) # print(list(ll)) for el in ll: print(el)

    map可以将可迭代对象进行处理,与zip()类似有水桶效应,多出的项不做处理

    # 水桶效应, zip()
    lst1 = [1, 3, 5, 7]
    lst2 = [2, 4, 6, 8, 10]
    m = map(lambda x, y, z: x + y + z, lst1, lst2, [5, 1, 2, 3, 6])
    print(list(m))
    输出:[8, 8, 13, 18]
    
    
  • 相关阅读:
    github系列:gh-pages
    js 传参乱码问题解决
    nvm安装
    如何创建.babelrc文件?
    Hello World
    python——字符串截取
    python读入写入中文名图片
    VGG16等keras预训练权重文件的下载及本地存放
    在Linux服务器非root权限下搭建TensorFlow框架(Anaconda)
    查看linux服务器上Tensorflow的版本和位置
  • 原文地址:https://www.cnblogs.com/Mr-wangxd/p/9482520.html
Copyright © 2011-2022 走看看