zoukankan      html  css  js  c++  java
  • python常用函数进阶(2)之map,filter,reduce,zip

    Basic Python : Map, Filter, Reduce, Zip

    1-Map()

    1.1 Syntax
    #      fun : a function applying to the iterable object
    # iterable : such as list, tuple, string and other iterable object
    
    map(fun, *iterable)		# * token means that multi iterables is supported
    
    1.2 Working

    map() applying the given function to each item of the given iterable object.

    map() returns an iterable object called "map object".

    1.3 Examples
    # eg 1
    def addition(n): 
        return n + n 
    
    numbers = (1, 2, 3, 4) 
    result = map(addition, numbers) 
    print(list(result)) 
    >>>[2,4,6,8]
    
    # eg 2
    numbers = (1, 2, 3, 4) 
    result = map(lambda x: x + x, numbers) 
    print(list(result)) 
    >>>[2,4,6,8]
    
    # eg 3 - multi iterables
    numbers1 = [1, 2, 3] 
    numbers2 = [4, 5, 6] 
    
    result = map(lambda x, y: x + y, numbers1, numbers2) 
    print(list(result))
    >>>[5,7,9]
    

    2-Filter()

    2.1 Syntax
    #      fun : a function that tests if each element of the sequence true or not.
    # sequence : who needs to be filtered, it can be sets, lists, tuples, or containers of any iterators.
    
    filter(fun, sequence)
    
    2.2 Working

    filter() applying the given function to each item of the given sequence object, and remain the eligible element.

    filter() returns an iterator that is already filtered.

    2.3 Examples
    # eg 1
    seq = [0, 1, 2, 3, 5, 8, 13] 
    
    result = filter(lambda x: x % 2 == 0, seq) 
    print(list(result)) 
    >>>[0, 2, 8]
    

    3-Reduce()

    3.1 Syntax
    #      fun : a function applying to all elements of the sequence.
    # sequence : who needs to be computered by itself, it can be sets, lists, tuples, or containers of any iterators.
    
    filter(fun, sequence)
    
    3.2 Working
    1. At first step, first two elements of sequence are picked and the result is obtained.
    2. Next step is to apply the same function to the previously attained result and the number just succeeding the second element and the result is again stored.
    3. This process continues till no more elements are left in the container.
    4. The final returned result is returned and printed on console.
    3.3 Examples
    from functools import reduce
    
    lis = [1, 3, 5, 6, 2] 
    
    print (reduce(lambda a,b : a+b,lis)) 
    print (reduce(lambda a,b : a if a > b else b,lis)) 
    >>>17
    >>>6
    

    4-Zip()

    4.1 Syntax
    zip(*iterators)		# * token means that multi iterators is supported
    
    4.2 Working

    zip() returns a single iterator object, having mapped values from all the containers.

    4.3 Examples
    # 1. How to zip the iterators?
    name = [ "Manjeet", "Nikhil", "Shambhavi", "Astha" ] 
    roll_no = [ 4, 1, 3, 2 ] 
    marks = [ 40, 50, 60, 70 ] 
    
    mapped = list(zip(name, roll_no, marks))
    print(mapped)
    >>>[('Shambhavi', 3, 60), ('Astha', 2, 70),('Manjeet', 4, 40),('Nikhil', 1, 50)]
    
    # 2. How to unzip?
    namz, roll_noz, marksz = zip(*mapped)
    
    # 3. How to traversal them?
    players = [ "Sachin", "Sehwag", "Gambhir", "Dravid", "Raina" ] 
    scores = [100, 15, 17, 28, 43 ] 
    
    for pl, sc in zip(players, scores): 
        print ("Player :  %s     Score : %d" %(pl, sc))
    >>>
    Player :  Sachin     Score : 100
    Player :  Sehwag     Score : 15
    Player :  Gambhir     Score : 17
    Player :  Dravid     Score : 28
    Player :  Raina     Score : 43
    
  • 相关阅读:
    CentOS7上安装FTP服务
    CentOS7上安装Nginx、PHP、MySQL
    iOS-高性能编程之多线程
    Autoloader什么鬼
    PHP调用外部命令
    PHP使用Redis【重要】
    Windows系统上Redis的安装
    利用nginx与ffmpeg搭建流媒体服务器
    Ubuntu14.04上安装Composer
    find the most comfortable road(并差集,找差值最小的权值)
  • 原文地址:https://www.cnblogs.com/machine-lyc/p/11266689.html
Copyright © 2011-2022 走看看