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])
这样呢?答案仍然是木桶原理,大家可以自己去验证。
python中的zip、lambda、map操作的更多相关文章
- python中的zip、map、reduce 、lambda、filter函数的使用
飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...
- python中的zip、map、reduce 、lambda函数的使用。
lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...
- python中使用zip函数出现<zip object at 0x02A9E418>
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...
- python中的filter、map、reduce、apply用法
1. filter 功能: filter的功能是过滤掉序列中不符合函数条件的元素,当序列中要删减的元素可以用某些函数描述时,就应该想起filter函数. 调用: filter(function,seq ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- Python中关于csv的简单操作
Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- python中的zip()函数和map()函数
一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...
- python中的 zip函数详解
python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...
随机推荐
- 转载:2.2.3 配置项的注释《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19628.html 如果有一个配置项暂时需要注释掉,那么可以加"#"注释掉这一行配置.例如: #pid ...
- 关于Java源文件中public类的问题
结论: 一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译: 如果源文件中没有一个public类,则文件名与类中没有一致性要求: 至于mai ...
- IntelliJ IDEA 12:
启动参数-server -Xms1024m -Xmx1024m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:PermSize=128m -XX:MaxPermSi ...
- winform(记事本--查找)
- 搭建ssh框架项目(一)
一.创建web项目 二.导入jar包 三.创建数据库(MySQL) 四.建立javaBean对象(ElecText.java),属于持久层对象(PO对象) package com.cppdy.ssh. ...
- hdu3436 splaytree树模拟队列+离散化缩点
数据较大,需要先把每个top不会操作到的段缩成一个点,记录其开始和结束的位置,和top能操作到的点一起建立一颗伸展树模拟 然后就是普通的队列模拟操作 /* 不会被top操作到的区间就缩点 通过spla ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)
昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...
- Android开源日志库Logger的使用
https://blog.csdn.net/Power_Qyh/article/details/78159598?locationNum=2&fps=1 https://github.com/ ...
- [转] Java基础知识——Java语言基础
http://blog.csdn.net/loneswordman/article/details/9905931 http://blog.csdn.net/wanghuan203/article/d ...
- Kettle学习之Spoon简单使用
kettle学习之Spoon使用 2018-08-04 10:40:01 首先介绍两个博客入门: https://blog.csdn.net/zzq900503/article/details/785 ...