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])

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

python中的zip、lambda、map操作的更多相关文章

  1. python中的zip、map、reduce 、lambda、filter函数的使用

    飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...

  2. python中的zip、map、reduce 、lambda函数的使用。

    lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...

  3. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  4. python中的filter、map、reduce、apply用法

    1. filter 功能: filter的功能是过滤掉序列中不符合函数条件的元素,当序列中要删减的元素可以用某些函数描述时,就应该想起filter函数. 调用: filter(function,seq ...

  5. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  6. Python中关于csv的简单操作

    Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...

  7. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  8. python中的zip()函数和map()函数

    一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...

  9. python中的 zip函数详解

    python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...

随机推荐

  1. Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

    # yum install -y vim Loaded plugins: fastestmirror, presto Loading mirror speeds from cached hostfil ...

  2. ADC自动转接功能Lua实现

    一.背景介绍: 虽然使用Mod_fifo和mod_callcenter可以做呼叫中心的应用,但在实现应用中,这两个模块很难客制化需求,再此我用Lua实现了5路客服(1000-1004),一个呼叫中心号 ...

  3. jquery学习集合

    跳转网页:$(location).attr('href', '/index');

  4. Linux设备模型:基础篇

    linux提供了新的设备模型:总线(bus).设备(device).驱动(driver).其中总线是处理器与设备之间通道,在设备模型中,所有的设备都通过总线相连:设备是对于一个设备的详细信息描述,驱动 ...

  5. 搭建ssh框架项目(二)

    一.创建dao层 (1)创建接口ICommonDao.java package com.cppdy.ssh.dao; public interface ICommonDao<T> { pu ...

  6. python+selenium十三:破解简单的图形验证码

    此方法可破解简单的验证码,如: 注:中文识别正在寻找办法 安装: 1.python3 2.Pillow 3.pytesseract 4.tesseract-ocr    下载地址:https://pa ...

  7. 将eclipse的maven项目导入到intellij idea中

    最近项目中需要用到idea,需要将原来的eclipse项目进行转移.捣鼓了半天终于成功了,在这里和大家分享下,希望对大家有所帮助,如有错误,欢迎指正. idea的确是一款很智能的开发工具,真的是爱不释 ...

  8. AOJ 0009 Prime Number

    题意:给出n,求不大于n的素数有多少个. 算法:先用线性时间复杂度的筛法打素数表,对于每个输入统计不超过的素数个数. #include <cstdio> int p[100010]; bo ...

  9. Python中List的append引用赋值问题处理

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...

  10. Python 打印当前文件相对路径和绝对路径

    一.打印相对路径 print(__file__) 二.打印绝对路径 import os print(os.path.abspath(__file__)) 三.打印文件名 import os print ...