Chapter 3
1、序列类型可以使用成员操作符in,大小计算函数(len()),分片([]),都可以迭代。Python内置的序列类型:str,list,tuple,bytearray,bytes.标准库中的序列类型:集合,命名的元组。
2、*也可作为序列拆分运算符,当且仅当其在赋值运算符右侧时。首先将右侧的序列根据左侧变量个数拆分,并首先按照顺序将数据项赋给没有*的变量,然后剩下的数据项赋给带*的变量
MK@XQFY~FQK}JD.jpg)
3、列表推导/列表内涵:[expression for item in list]/[expression for item in list if condition]
[s+c+d for s in sex for c in color for d in din]
4、元组和列表都是有序的序列,对其迭代时以从左到右的顺序提供数据项。都包含0个或多个对象引用,数据项可以是任意类型,然后对于集合,是无序的,对其迭代时,集合类型以任意顺序提供数据项。并且其数据项只能是可哈希的类型,float,int,tuple,str都是可哈希的,list,set,dict都是不可哈希对象。因为集合是无序的,可变的,所以不存在索引位置,也就不能分片或者是步长分片。
5、tuple(),list(),set()都是可调用的函数,无参数是返回空的元组,列表,集合,有参数时尝试将其转化为对应的组合类型。可以看出list和tuple是有序的,set是无序的,但是可以过滤重复的数据项。
5、集合内涵与列表内涵相似:{expression for each in set}/{expression for each in set if condition}
6、字典是一种无序的组合类型,包含0或多个键值对。空的{}会创建空字典,不会创建空集合。键是指向可哈希运算的对象的对象引用,而值是指向任意数据类型的对象引用。即键只能是str,touple,float,int型。值可以是任意型。
7、创建字典主要两种方式:直接创建:

另外一种是d=dict(root=18,blue=[75,'r',2],21='bejn')
字典采用[]操作符存取数据项,键是可哈希的对象的引用,‘root’就是可哈希的字符串类型,字面值形式的对象引用(x='root')d['root'](d[x])一个意思。[]内具体的和哈希的类型,虽然d[(4,11)]看着很怪,d[y](y=(4,11))的背后还是d[(4,11)]
8、任意可迭代的组合类型都可调用len(),max(),min(),all(),any()函数。当然最大最小必须是针对值而言,应该全是数值型的组合类型才有意义。否则,提示不能将字符换类型转化为int
9、关于range(),对其type表明其是range类型,range(n)提供了n个连续的整数,可以理解为将n个整数存储在了range类型中,如果想查看此可迭代类型中的每个数据项,分两步走:i=iter(range(n))#创建迭代子i,i是个迭代对象。
第二步:next(i)#循环使用next(i)逐个访问可迭代对象range(n)中的每个数据项。
访问所有可迭代数据类型的所有数据项实际上都是执行了上面两步,for in只是封装了这两部而已。
这样访问未免太过繁琐,可以list(range(n)),touple(range(n))将range类型的整数数据项转化为列表或者是元组的数据项,range(n)的存在意义也正在此。
10、enumerate(i,[index]),返回(index,one item),序列类型都可以用此函数,用法即是在返回每个数据项的同时,对每个数据项标记,返回值中index即是标记,默认标记从0开始,可以在函数中重新定义。enumerate(d)对字典操作时,迭代出结果是‘键’,enumerate(d.items())才可以迭代出’键值对‘,d.items()返回值是(key,value)的元组。所以才会报错,需要不止两个值。(index,key,value)=(index,(key,value))明显对不上号~
搞定~
11、字典与列表,元组,集合等的迭代不同,因为字典内部是键值对,键和值都可迭代,所以,对其迭代与一般的序列稍有不同,直接对字典迭代得出的是‘键’。
Chapter 3的更多相关文章
- Modern C++ CHAPTER 2(读书笔记)
CHAPTER 2 Recipe 2-1. Initializing Variables Recipe 2-2. Initializing Objects with Initializer Lists ...
- Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- ApiWrapper
前面两片文章讲解了通过AIDL和Messenger两种方式实现Android IPC.而本文所讲的并不是第三种IPC方式,而是对前面两种方式进行封装,这样我们就不用直接把Aidl文件,java文件拷贝 ...
- Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- Messenger
Messenger类实际是对Aidl方式的一层封装.本文只是对如何在Service中使用Messenger类实现与客户端的通信进行讲解,对Messenger的底层不做说明.阅读Android Prog ...
- [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV
仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...
- 《深入理解计算机系统》 Chapter 7 读书笔记
<深入理解计算机系统>Chapter 7 读书笔记 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(货被拷贝)到存储器并执行. 链接的时机 编译时,也就是 ...
- 《Linux内核设计与实现》Chapter 3 读书笔记
<Linux内核设计与实现>Chapter 3 读书笔记 进程管理是所有操作系统的心脏所在. 一.进程 1.进程就是处于执行期的程序以及它所包含的资源的总称. 2.线程是在进程中活动的对象 ...
- PRML Chapter 2. Probability Distributions
PRML Chapter 2. Probability Distributions P68 conjugate priors In Bayesian probability theory, if th ...
- PRML Chapter 1. Introduction
PRML Chapter 1. Introduction 为了防止忘记,要把每章的重要内容都记下来,从第一章开始 2012@3@28 今天又回去稍微翻了一下第一章内容,发现第一次看的时候没有看透,每次 ...
- MathType 插入定义的chapter and section break后无法隐藏
每一章标题后面插入一个“Next Section Break”,这样定稿后各章文件组合为总文件后,方程编号会自动递增,如果已经插入了默认的“Equation Chapter 1 Section 1”, ...
- WITCH CHAPTER 0 [cry] 绝密开发中的史克威尔艾尼克斯的DX12技术演示全貌
西川善司的[WITCH CHAPTER 0 cry]讲座 ~绝密开发中的史克威尔艾尼克斯的DX12技术演示全貌 注:日文原文地址: http://pc.watch.impress.co.jp/d ...
随机推荐
- 问题记录-Activity跳转后显示空白界面
前两天写一个简易安卓记事本,从主界面跳转到添加内容界面总是显示空白. 明明有setContentView xml文件在可视化开发环境下也正常显示.后经前辈指点,原来是复写onCreate函数时出现了问 ...
- Microsoft Visual Studio 语言切换
事情的起因是需要安装本地的中文帮助,OS以及Viusal Studio都安装的英语版本. 其实需要安装的安装Viusal Studio的中文语言包即可. 通过工具选项可以达到以下的对话框 可以通过下载 ...
- 小心指针被delete两次
C++类中,有时候使用到传值调用(对象实体做参数),遇到这种情况,可要小心了!特别是当你所传值的对象生命周期较长,而非临时对象(生命周期段)的时候.来看看下面的情况: #include <ios ...
- Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”
1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLS ...
- 【转】C#中Invoke的用法
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界 ...
- Excle中LOOKUP经典用法
在Excle中我们经常会遇到需要求根据某个区间的判断然后获取到对应的结果,下面是一个具体的实现例子: 例如: 现在需要实现,当输入0到25以内的任何数字时,会自动获取相应的英文字母 =IFERROR( ...
- SQL Server中查询用户的对象权限和角色的方法
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_h ...
- 分布式服务框架HSF学习
HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:1.标准Service方式的RPC 1).Service定义:基于OSGI的Service定义方式 ...
- Swift 中使用Nimble 库进行单元测试
Nimble 从字面上看是 敏捷,灵活 的意思.Nimble 是一个库,一个 断言库.这个库一般用于单元测试.Xcode 6 为我们集成了 XCTest 单元测试库.在正式介绍 Nimble 之前,我 ...
- MVC 中如何将带有标签的字符串转换为HTML 标签 显示出来?
出现问题的现象: