6. 简单推导

列表推导,是一种从其他列表创建列表的方式,其原理类似于for循环。

 list1 = [x * x for x in range(10)]
print(list1)
结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 list2 = [x * x for x in range(10) if x % 3 == 0]
print(list2)
结果:
[0, 9, 36, 81]
 list3 = [(x,y) for x in range(3) for y in range(3)]
print(list3)
结果:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 该方案效率相对低效,更佳解决方案见下一示例
1 girls = ['alice','bernice','clarice']
boys = ['chris','arnod','bob']
list4 = [b + ' -> ' + g for b in boys for g in girls if b[0] == g[0]]
print(list4)
结果:
['chris -> clarice', 'arnod -> alice', 'bob -> bernice']

因上述方法需要检查每种可能的配对,所以效率不高,为此推荐使用如下方法

 girls = ['alice','bernice','clarice']
boys = ['chris','arnod','bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)
#用于辅助查看setdefault执行过程,setdefault用于获取指定键相关联的值
print(letterGirls)
print()
list5 = [b + ' -> ' + g for b in boys for g in letterGirls[b[0]]]
print(list5) 结果:
{'a': ['alice']} {'a': ['alice'], 'b': ['bernice']} {'a': ['alice'], 'b': ['bernice'], 'c': ['clarice']} ['chris -> clarice', 'arnod -> alice', 'bob -> bernice']

字典方法setdefault,见链接中9.部分:https://www.cnblogs.com/ElonJiang/p/11337757.html

7. pass、del和exec

7.1 pass - 什么都不做,占位符

7.2 使用del删除

7.3 使用exec 和 eval 执行字符串及计算结果

8. 章小结

8.1 关键词

打印语句,导入语句,赋值语句

代码块,条件语句,断言,循环,推导

pass、del、exec和eval

8.2 本章新函数

 chr(n) # 返回一个字符串,其中只包含一个字符,这个字符对应于传入的顺序值n(0<=n<256)
eval(source[,globals[,locals]]) # 计算并返回字符串表示的表达式结果
exec(source[,globals[,locals]]) # 将字符串作为语句执行
enumerate(seq) # 生成可迭代的索引-值对
ord(c) # 接受一个只包含一个字符的字符串,并返回这个字符的顺序值(一个整数)
range([start,] stop[, step]) # 创建一个由整数组成的列表
reversed(seq) # 按相反的顺序返回seq中的值,以便用于迭代
sorted(seq[,cmp][,key][,reverse]) # 返回一个列表,其中包含seq中的所有值且这些值是经过排序的
xrange([start,] stop[, step]) # 创建一个用于迭代的xrange对象
zip(seq1, seq2, ...) # 创建一个适用于并行迭代的新序列

Python基础 第5章 条件、循环及其他语句(2)的更多相关文章

  1. Python基础教程之第5章 条件, 循环和其它语句

    Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 #Chapter 5 条件, 循环 ...

  2. Python基础1:if条件判断 break/continue语句

    计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. Python中,if语句被用来进行判断,它的语法结构是: 1 if 判断条件: 2 执行语句…… 3 var = input(" ...

  3. python基础教程第5章——条件循环和其他语句

    1.语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句.在代码前放置空格来缩进语句即可穿件语句块.块中的每行都应该缩进同样的量.在Phyton中冒号(:)用来标识语句块的开始,块中 ...

  4. Python基础 第5章 条件、循环及其他语句(1)

    1. print和import 1.1 打印多个参数 可用 + 连接多个字符串,可保证被连接字符串前无空格: 可用sep=“_”,自定义各种分隔符: print("I"," ...

  5. python学习笔记2_条件循环和其他语句

    一.条件循环和其他语句 1.print和import的更多信息. 1.1.使用逗号输出  //print() 打印多个表达式是可行的,用逗号隔开.       在脚本中,两个print语句想在一行输出 ...

  6. Python之条件 循环和其他语句 2014-4-6

    #条件 循环和其他语句 23:30pm-1:431.print和import的更多信息 使用逗号将多个表达式输出 >>> print 'age:',42 age: 42 >&g ...

  7. Python基础(6)--条件、循环

    本文的主要内容是 Python 的条件和循环语句以及与它们相关的部分. 我们会深入探讨if, while, for以及与他们相搭配的else,elif,break,continue和pass语句. 本 ...

  8. 第一章:python基础语法| 字符编码| 条件语句...

    1.编程语言介绍 编程就是写代码,让计算机帮你做事情.计算机底层是电路,只认识二进制0和1.机器语言&汇编语言语言进化历史:机器.汇编.高级.机器语言只接受二进制代码:汇编语言是采用英文缩写的 ...

  9. python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

随机推荐

  1. Java 有状态和无状态对象的区别

    无状态会话Bean   无状态就是对于一次操作,不能保存数据.无状态对象(Stateless Bean)是没有实例变量的对象,不能保存数据,是不变类,是线程安全的.例如:  public class ...

  2. Redis删除相同前缀的key

          如何优雅地删除Redis set集合中前缀相同的key?       Redis中有删除单条数据的命令DEL,却没有批量删除特定前缀key的指令,但我们经常遇到需要根据前缀来删除的业务场景 ...

  3. python生成二维码(简易)

    首先要的配置: pillow image qrcode zxing 然后直接上代码: import PIL import qrcode # 实例化二维码生成类 qr = qrcode.QRCode( ...

  4. 计蒜客 UCloud 的安全秘钥 ——(hash)

    题目链接:https://nanti.jisuanke.com/t/15769. 题意是求可以变换位置以后相同的子串有多少个,那么做法是只要每个数字的平方和,立方和以及四次方和都相同就可以了. 代码如 ...

  5. 更加方便的使用git上传自己的代码

    经过以上的培训,同学们肯定对git的基本使用没有什么问题了.但是每次代码有更改后,依旧需要 git  add  * git  commit * git   打开vim编辑器,编辑提交信息 或者 git ...

  6. 构造器Constructor

    构造器Constructor是否可被override构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading 首先,构造器是不能被继承的,因为每个类 ...

  7. Microsoft Visual C++ 2017 Redistributable

    版本:14.10.25008https://download.microsoft.com/download/4/5/4/454AC59C-DC3F-4AD3-950F-6DCBDF672071/vc_ ...

  8. zblog模板怎么安装?zblog主题安装教程

    有很多初次使用zblog的新手还会问我“zblog模板怎么安装?”,那么本文就专门给大家介绍下zblog主题安装教程. zblog现在分为zblogasp和zblogphp两个版本,两个版本的模板主题 ...

  9. 阶段5 3.微服务项目【学成在线】_day08 课程图片管理 分布式文件系统_06-分布式文件系统研究-fastDFS安装及配置文件说明

    3 fastDFS入门 3.1fastDFS安装与配置 3.1.1 导入虚拟机 对fastDFS的安装过程不要求学生掌握,可以直接导入老师提供虚拟机. 1.使用Vmware打开虚拟机配置文件“Cent ...

  10. 123457123457#0#-----com.twoapp.FromPuzzle02--前拼后广--儿童农场拼图游戏jiemei

    com.twoapp.FromPuzzle02--前拼后广--儿童农场拼图游戏jiemei