• python中的zip、lambda、map操作


    python 中有几个比较酷炫的操作,比如:zip、lambda、map

    一、zip操作

    zip字面意思:拉链。这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了。通俗点讲,就是把第1个参数、与第2个参数... 到第N个元素,按位置1个个对齐,打包输出一系列元组(turple).

    x = (1, 2)
    y = ("a", "b")
    zip_result = zip(x, y)
    print(list(zip_result))
    
    x = [4, 5, 6]
    y = ['d', 'e']
    
    zip_result = zip(x, y)
    print(list(zip_result))
    

    输出:

    [(1, 'a'), (2, 'b')]
    [(4, 'd'), (5, 'e')]
    

    注意第2行的输出,这个类似木桶原理,元素个数最少的,决定最后输出元素的个数,x里有[4,5,6]3个元素,而y里有['d','e']2个元素,最终结果里就只有2个turple。另外zip的结果是一个对象,要查看的话,得转化成list对象,这样才能友好的输出。 

    二、lambda

    python里的lambda与c#、java不同,主要用于将一些逻辑简单的代码,写得更简洁(当然:是否更简洁,这个有争议,python里的 ... for ... in ... if ... 本身就很灵活,已经可以做到代码风格非常简洁)

    # lambda 可以用于定义一些逻辑简单的函数
    add1 = lambda m, n: m + n
    
    
    # 上面的lambda 等效于下面这个
    def add2(a, b):
        return a + b
    
    
    print(add1(1, 2))
    print(add2(1, 2))
    

    结果都是输出3 

     

    三、map操作

    python时的map,完全不同于java中的map容器,它实际上有点类似于c#中的委托,可以把function函数本身当成一个参数。

    # lambda 可以用于定义一些逻辑简单的函数
    add1 = lambda m, n: m + n
    
    
    # 上面的lambda 等效于下面这个
    def add2(a, b):
        return a + b
    
    
    map_result = map(add1, [1, 2], [6, 7])
    print(list(map_result))
    
    map_result = map(add2, [3], [4])
    print(list(map_result))
    

    输出:

    [7, 9]
    [7]
    

    解释一下:第一次是把[1,2]与[6,7]作用于add1函数,相当于[1+6,2+7],每个元数按位相加,第二次则是[3]与[4]相加。可能有同学会想,如果二个相加的列表,元素个数不对等,比如

    map_result = map(add1, [1, 2], [6, 7, 8])

    这样呢?答案仍然是木桶原理,大家可以自己去验证。

  • 相关阅读:
    上传到dockerhub
    ILSpycmd 手册
    自制防丢纽扣:防airtag
    备忘:MIP算法
    Python学习笔记:select_dtypes选取指定数据类型的列
    Python学习笔记:LGB/XGB/CatBoost/NGB之安装
    Python学习笔记:dataframe行遍历之iterrows
    Python学习笔记:数据框dataframe列反转
    PHP获取汉字首字母并分组排序 何苦
    mysql 批量更新(插入)表字段 清洗数据 存储过程 何苦
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/python-zip-lambda-map.html
Copyright © 2020-2023  润新知