专栏首页菩提树下的杨过python中的zip、lambda、map操作

python中的zip、lambda、map操作

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

一、zip操作

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

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不同,最主要的用途在于可以将一些逻辑简单的代码,写得更简洁。

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • freeswitch笔记(2)-voip初体验

    上一篇学习了如何安装freeswitch,接下来我们利用2个voip软件来体验如何互打电话(注:仍然是mac环境,windows用户可参考mac上的做法,原理相...

    菩提树下的杨过
  • Silverlight在线创建PDF(支持中文)

    用MS的silverlight来生成Adobe的pdf文档?象不象到肯德基买麦当劳? 哈... 言归正传: 首先要用到下面二个开源库 1.开源项目 http:...

    菩提树下的杨过
  • 当jQuery 1.7遇上focus方法

    jQuery中有一个focus()方法能设置对象的焦点,在1.7以下的版本中,不管对象是不是disabed状态,这个方法都不会报错(只是当disabled时,设...

    菩提树下的杨过
  • LineFlow:PyTorch或任何框架的简单NLP数据集处理程序

    对于NLP任务,可能需要在预处理中标记文本或构建词汇表。可能已经体验到预处理代码与桌面一样混乱。如这就是为什么创建LineFlow来缓解痛苦!它将使“桌面”尽可...

    代码医生工作室
  • 【技术分享】保序回归

      保序回归解决了下面的问题:给定包含n个数据点的序列 y_1,y_2,...,y_n , 怎样通过一个单调的序列 beta_1,beta_2,...,beta...

    腾讯智能钛AI开发者
  • 关于数据地图的几个遗留问题解决方案

    今天跟大家分享三个数据地图的遗留问题,包括以前因为技术手段限制无法解决的问题,以及读者吐槽最多的问题。 如何在一个版面上呈现不同行政级别的地理信息; 如何给版面...

    数据小磨坊
  • Xcode最新及各历史版本安装方法·官方镜像下载地址

    个人看法,从重复利用的角度,不推荐用AppStore安装和更新,推荐直接去官网的历史版本下载资源页面下载,这样下载之后还能有版本备份,等下次再需要的时候还能重复...

    陈满iOS
  • python3的一个奇怪设计--map

    这个改动真是太不正常了,ruby、js和lisp都没这么干的。我也没搞懂这样做有什么好处?

    py3study
  • MySQL innodb_undo_tablespaces相关参数

    摘录自:http://gfsunny.blog.51cto.com/990565/1566683

    二狗不要跑
  • Python匿名函数快速入门

    匿名函数,顾明思义就是一种隐匿了名字的函数。Python中使用lambda语法定义匿名函数,只需用表达式而无需申明。

    Rare0716

扫码关注云+社区

领取腾讯云代金券