Chapter 3
1、序列类型可以使用成员操作符in,大小计算函数(len()),分片([]),都可以迭代。Python内置的序列类型:str,list,tuple,bytearray,bytes.标准库中的序列类型:集合,命名的元组。
2、*也可作为序列拆分运算符,当且仅当其在赋值运算符右侧时。首先将右侧的序列根据左侧变量个数拆分,并首先按照顺序将数据项赋给没有*的变量,然后剩下的数据项赋给带*的变量
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 ...
随机推荐
- does not match bootstrap parameter
问题描述: DBD::mysql object version 2.0419 does not match bootstrap parameter 2.0902 at /usr/libdata/per ...
- Oracle 10g 之自动收集统计信息
从10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息.这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启. ...
- python中的remove趣谈
首先我们要知道remove做的操作是顺序遍历list表,找到第一个匹配的项时删掉该项,并不会再往下找,那我们看下面的代码 mylist = [1,2,3] for i in mylist: print ...
- POJ——3984
走迷宫问题,POJ上面的题 #include <stdio.h> #include <stdlib.h> #define SIZE 5 bool findpath = fals ...
- django-url调度器-高级篇
我们在中级篇中学会了如何进行反向解析,但是有这样一个问题,在为 url 命名的时候,名字不能重复,否则会导致各种各样的问题.在 url 还少的时候保证不重名还是比较简单的,但是 url 多起来以后就比 ...
- Android--获取使用的总流量和每个App的上传、下载的流量
获得每个App的上传.下载的流量. 思路就是获取到我们手机上的所有app,再获得app里面使用的权限,如果app有网络权限,就显示出来. 代码很简单,代码里面也有比较详细的注释,下面直接上代码 布局文 ...
- Django+Nginx+MongoDB+Mysql+uWsgi的搭建
搭建目标如下: 图:系统架构图 这个系统可以提供web服务及其它查询应用服务,我用其做一个二手房信息搜集.处理及分发的系统,可以通过浏览器访问,也可以通过定制的客户端进行访问. 一.安装篇 1.下载安 ...
- EF4.1之基础(实现Code First)
Code First:顾名思义:就是通过代码生成数据库----通过类生成数据库中对应的表: 首先定义两个类(就是建模的过程): public class Order { public int Orde ...
- mysql使用二进制日志恢复数据
一.恢复到某个二进制文件 1.开启二进制日志 在mysqld的配置节点下添加如下配置 log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,l ...
- Travis-CI的初步了解和测试程序的进一步编写
一. Travis-CI部分 最近基本都在研究Travis-CI的使用.CI是continue integration(持续集成)的缩写,Travis应该是给我们提供免费服务器的组织.下面介绍一下其使 ...