【Python之旅】第二篇(八):zip拉链与map拉链

1.zip拉链

·功能:将两个列表合并起来,成为一个元素为元组的列表;

·演示如下:


1

2

3

4

5

6

7

8

9

10

>>> a = range(0,5)

>>> b = range(5,10)

>>> a

[01234]

>>> b

[56789]

>>> zip(a,b)

[(05), (16), (27), (38), (49)]

>>> zip(b,a)

[(50), (61), (72), (83), (94)]

·如果两个列表元素数量不一致,则zip会自动忽略:


1

2

3

4

5

6

7

8

>>> a = range(1,5)

>>> b = ['a''b''c']

>>> a

[1234]

>>> b

['a''b''c']

>>> zip(a,b)

[(1'a'), (2'b'), (3'c')]

·利用zip的功能,可以造一个字典:


1

2

3

4

5

6

7

>>> key = ['name''girlfriend']

>>> values = ['xpleaf''CL']

>>> zip(key, values)

[('name''xpleaf'), ('girlfriend''CL')]

>>> dict(zip(key, values))

{'girlfriend''CL''name''xpleaf'}

>>> dict(zip(key, values))


2.map

·map的功能很强大,这里只提及其类似于zip的功能;


1

2

3

4

5

6

7

8

>>> a = range(1,5)

>>> b = ['a''b''c''d']

>>> map(a,b)

Traceback (most recent call last):

  File "<stdin>", line 1in <module>

TypeError: 'list' object is not callable

>>> map(None,a,b)

[(1'a'), (2'b'), (3'c'), (4'd')]

·可以看到map需要指定第一个参数,因为map不会自动忽略两个列表数量不同的情况,指定参数作为数量不足列表的填充:


1

2

3

4

>>> b.pop()

'd'

>>> map(None, a, b)

[(1'a'), (2'b'), (3'c'), (4, None)]

时间: 2024-12-21 13:26:38

【Python之旅】第二篇(八):zip拉链与map拉链的相关文章

【Python之旅】第八篇:开发监控软件的思想与流程

 最近两周时间里,一直都在学习监控软件的开发,虽然是简版的,可是在这个过程当中,对于要开发一个监控软件的大概框架和流程还真的学习了很多东西,而且也想,这些知识实在是很难通过看文章或者是书籍能学习得到,只有自己亲自去实践过,我想才可以慢慢体会到这中间的不易吧.而通过这样一个过程,发现自己在这方面的思想枷锁也慢慢地打开,也才慢慢体会到那种乐趣吧.这里,真的是非常感谢Alex老师非常精彩的讲解.     监控软件的大概流程如下:     当然,实际中学习的过程中并没有去监控MySQL或者是ngnix,

「C语言回顾之旅」第二篇:指针详解进阶

说明:     第一篇回顾了指针的基本概念以及基本使用,因此对指针也有了一个较为清晰的思路,但实际上第一篇关于指针的内容是不太容易忘记的.这是第二篇中的内容是比较容易混淆,但对于指针的进一步学习也是非常重要的. 一.指向函数的指针 1.函数指针 ·函数指针即指向函数的指针,函数指针值为函数的入口地址,通过使用该指针,即可以使用该函数: ·编写一个程序返回两个数的最大值,通过函数指针调用函数: a.main函数代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Android开源项目第二篇——工具库篇

Android开源项目第二篇--工具库篇 本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他.   最新内容请访问AndroidOpenProject@Github,欢迎Star和Fork.   Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇Android开源项目第二篇--工具库

CoreOS Fest 系列之第二篇: Systemd、Go、Calico、Sysdig

本文讲的是CoreOS Fest 系列之第二篇: Systemd.Go.Calico.Sysdig,[编者的话]在 CoreOS Fest 第二天的会议中,演讲者展示了多个开源项目和工具,包括 Systemd 和 CoreOS . Go 语言和容器. Calico 项目. Sysdig 等. 在 CoreOS Fest 的第一天会议中,陆续介绍了 CoreOS 的架构.规划和规范.第二天的会议,演讲者展示了多个开源项目和工具,包括 systemd-nspawn . Calico 项目和 Sysd

ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例子,想选中一些好 上手的例子,这样,可能一些例子大家以前都见过,但是我想说:同样是弹钢琴,同样一首"命运交响曲 ",有的人弹的让人荡气回肠,有的人弹的就很一般. 受了李建忠老师的启发,发现用一种演化式的让人更好的接受. 好了,废话不说了.继续开发!希望大家支持! 我们之前开发了一个很简单的自定义的控件,方法很简单,只是把原来的html文本传入 writer.Writer()方法的参数,然后输出.其实从模式的

python基于右递归解决八皇后问题的方法

  本文实例讲述了python基于右递归解决八皇后问题的方法.分享给大家供大家参考.具体分析如下: 凡是线性回溯都可以归结为右递归的形式,也即是二叉树,因此对于只要求一个解的问题,采用右递归实现的程序要比回溯法要优美的多. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 def Test(queen,n): '''这个就不用说了吧,就是检验第n(下标,0-7)行皇后的位置是否合理''' q=que

JavaWeb开发入门第二篇Tomcat服务器配置讲解_java

一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改 例如:将Tomcat服务器的启动端口由默认的8080改成8081端口 Tomcat服务器启动端口默认配置 <Connector port="8080" protocol="HTTP/1.1" connectionT

Sql Server之旅——第二站 理解万恶的表扫描

原文:Sql Server之旅--第二站 理解万恶的表扫描 很久以前我们在写sql的时候,最怕的一件事情就是sql莫名奇妙的超级慢,慢的是撸一管子回来,那个小球还在一直转...这个着急也只有当事人才 明白,后来听说有个什么"评估执行计划",后来的后来才明白应该避免表扫描... 一:表扫描 1.现象 "表扫描"听起来很简单,不就是一行一行的扫嘛,你要说"执行计划"的话,我也会玩,为了更可观,我build一个表,再插入三行数据,如下图:   上面的P

拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜. 整体来说 Python 核心 部分是主要内容,高级主题 部分作为应用扩展内容.后半部分篇幅较短,内容不够深入,只到了解的层面,好在横向够广(每一个主