zoukankan      html  css  js  c++  java
  • map zip filter sorted reduce

    map zip filter sorted reduce

    1 map

    map(func,iter)
    通过映射,将iter中的各个元素分别传入func进行处理
    得到一个迭代器,里面为各个处理结果(func返回值)
    
    
    l=['a','b','c']
    s=map(a,l)
    print(type(s))
    print(s.__next__())
    print(s.__next__())
    print(s.__next__())
    
    
    
    <class 'map'>
    A
    B
    C
    

    2 zip

    zip(iter1,iter2)
    将多个iter中的元素一一对应并放入同一个元组,形式为:(element1_iter1,element1_iter2)
    函数结果为迭代器,无对应的数据直接忽略
    
    
    
    l=['a','b','c']
    l2=['c','d','e']
    z=zip(l,l2)
    print(next(z))
    print(next(z))
    print(next(z))
    
    
    ('a', 'c')
    ('b', 'd')
    ('c', 'e')
    

    3 filter

    filter(func,iter)
    将iter中的各个元素传入func进行处理,收集处理后func返回值为True的元素
    得到的结果是迭代器,里面为筛选通过的元素
    
    
    
    def b(x):
        if x.startswith('a'):
            return 1
    
    f=filter(b,l)
    print(f)
    print(list(f))
    
    
    <filter object at 0x00000203A6B686D0>
    ['a']
    

    4 sorted

    sorted(iter,key=func,reverse=False)
    将iter中的元素一个个取出,传入func进行处理,得到func返回值,以该返回值的大小为依据进行排序,按顺序放入列表
    得到结果为列表,reverse=False时为升序,否则为降序
    
    
    d={'1':23,'2':53,'3':44}
    def c(x):
        return d[x]
    
    s = sorted(d,key=c)
    print(s)
    
    
    
    
    ['1', '3', '2']
    
    
    salaries={
        'siry':3000,
        'tom':7000,
        'lili':10000,
        'jack':2000
    }
    res=sorted(salaries,key=lambda k:salaries[k],reverse=True)
    print(res)
    
    
    ['lili', 'tom', 'siry', 'jack']
    

    5 reduce

    reduce(func,iter,default_value)
    func需要2个形参
    
    将iter的第一第二个元素传入func,得到返回结果res1,将res1与第三个元素传入func,得到结果res2,将res2与第四个元素传入func..........
    default_value是初始值
    
    
    
    from functools import reduce	# python 3中需导入,python2可以直接使用reduce()
    res=reduce(lambda x,y:x+y,[1,2,3],10) # 可以设定初始值:10
    print(res)
    # 16
    
    res=reduce(lambda x,y:x+y,['a','b','c']) 
    print(res)
    # abc
    
    
  • 相关阅读:
    Search in Rotated Sorted Array
    Search insert position
    二分法感悟
    The Smallest Difference
    Lintcode: Nuts & Bolts Problem
    167. Two Sum II
    登录页面
    注册页面
    在线版简易计算器
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/achai222/p/12882549.html
Copyright © 2011-2022 走看看