字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的
映像类型中的数据是无序排列的
 
可以用工厂方法dict()来创建字典,也可以用fromkeys()来创建一个默认键
 
检查一个字典中是否有某个键的最好方法是用字典的has_key()方法,或者in 或not in
 
两个字典进行比较时,先比较两个字典元素数,当元素数相同时比较键大小,当键相等比较值
比较算法:
 
映射类型的內建函数:
hash()函数,用来判断某个对象是否可以做一个字典的键。(将一个对象作为参数传递给hash(),会返回这个对象的哈希值)
映射类型的內建方法:
update()更新一个字典内容
copy()返回一个字典的副本
 
不允许一个键对应多个值
键必须是可哈希的,所有不可变类型都是可哈希的(不可变类型:string,integer,tuple   可变类型:list,dict)
集合类型:set称作由不同的元素组成的集合,集合对象是一组无序排列的可哈希的值。并且集合成员可以做字典中的键。
其中集合分为可变集合(set)和不可变集合(frozenset)。可变集合可以添加和删除元素,不可变集合不可以。(可变集合不是可哈希的,不能作为字典的键,不可变集合可以)
创建集合用集合的工厂方法set()和frozenset()
>>> s=set('Hello')
>>> s
set(['H', 'e', 'l', 'o'])
>>> a = frozenset('Hello')
>>> a
frozenset(['H', 'e', 'l', 'o'])
更新集合:集合内建的方法和操作符添加和删除集合的成员:
>>> s.add('Python')
>>> s
set(['Python', 'H', 'e', 'l', 'o'])
集合等价/不等价:相同或不同的集合之间作比较。两个集合相等是指对每个集合而言当且仅当其中一个集合中的每个成员同时也是另一个集合的成员
集合类型操作符:
(1)联合(|)
两个集合的联合是一个新的集合,该集合中的每个元素都至少是一个集合的成员
(2)交集(&)
等同于集合的AND
(3)差补/相对补集(-)
指的是一个集合C,该集合中的元素只属于集合s而不属于集合t
(4)对称差分(^)
两个集合的对称差分是指另外一个集合C,该集合上的元素只能是属于s或集合t的成员不能同时属于两个集合
集合类型操作符:
(|=)更新方法:从已存在的集合中添加多个成员
(&=)保留操作:保留与其他集合的共有成员
(-=)差更新操作:返回一个集合,该集合中的成员是集合s去掉集合t中元素后剩余的元素
(^=)对称差分更新操作:返回一个集合,该集合中的成员仅是原集合s或仅是另一集合t中成员
 
内建函数:
len(),
工厂函数:set(),frozenset()
内建方法

Python核心编程(第七章)--映像和集合类型的更多相关文章

  1. Python核心编程读笔 6: 映射和集合类型

    第七章 映射和集合能力 一 字典(python中唯一的映射类型) 1 基本 创建和赋值: 正常创建:>>>dict = {'name':'earth', 'port':80} 用工厂 ...

  2. 【4】python核心编程 第七章-映射和集合类型

    1.映射类型的相关函数 函数 操作 dict([container]) 创建字典的工厂函数.如果提供了容器类(container) , 就 用其中的条目填充字典,否则就创建一个空字典. len(map ...

  3. 【7】python核心编程 第十一章-函数和函数式编程

    1.*函数(与方法)装饰器 装饰器背后的主要动机源自python 面向对象编程.装饰器是在函数调用之上的修饰.这些修饰 仅是当声明一个函数或者方法的时候,才会应用的额外调用. 装饰器的语法以@开头,接 ...

  4. python核心编程-第三章-个人笔记

    1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括 ...

  5. windows核心编程---第七章 用户模式下的线程同步

    用户模式下的线程同步 系统中的线程必须访问系统资源,如堆.串口.文件.窗口以及其他资源.如果一个线程独占了对某个资源的访问,其他线程就无法完成工作.我们也必须限制线程在任何时刻都能访问任何资源.比如在 ...

  6. 【1】python核心编程 第三章

    1.继续( \ ) 有两种例外情况一个语句不使用反斜线也可以跨行.在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号.中括号.花括号时可以多行书写.另外就是三引号包括下的字符串也可以跨行书写 ...

  7. python核心编程-第三章-习题

    1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...

  8. Python核心编程笔记 第二章

    2.1   程序输出:print语句         可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2   程序输出和raw_input()内建函数       ...

  9. Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)

    7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...

随机推荐

  1. 主题模型-LDA浅析

    (一)LDA作用 传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似 ...

  2. windows上putty访问ubuntu

    1. Ubuntu中安装ssh-server实现远程登录 a) 安装:sudo apt-get install openssh-server b) 开启服务:sudo /etc/init.d/ssh ...

  3. MySql 学习笔记 (派生表)

    派生表也是一种子查询那么它出现在 select * from ( select * from b <--这个就是派生表啦 )派生表其实不是个好东西,在生产的时候他是可以通过索引来过滤的,但是一但 ...

  4. Java Thread Status(转)

    public static enum Thread.State  extends Enum<Thread.State>线程状态.线程可以处于下列状态之一: 1.NEW 至今尚未启动的线程的 ...

  5. usaco silver

    大神们都在刷usaco,我也来水一水 1606: [Usaco2008 Dec]Hay For Sale 购买干草   裸背包 1607: [Usaco2008 Dec]Patting Heads 轻 ...

  6. 【转】如何解决Ubuntu终端里面显示路径名称太长

    原文网址:http://jingyan.baidu.com/article/3d69c5516c129df0ce02d77b.html Ubuntu 默认的终端下面,进入很多层的目录后,前面那个提示符 ...

  7. cf413E Maze 2D

    E. Maze 2D time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  8. inconvertible types; cannot cast 'android.supoort.v4.app.Fragment' to 'com.example.sevenun.littledemo.fragment.NewsTitleFragment'

    inconvertible types; cannot cast 'android.supoort.v4.app.Fragment' to 'com.example.sevenun.littledem ...

  9. C# 使用Sqlite 如何返回统计行数

    Visual 2010 with Sqlite 需要这样Query 数据: select count(*) from tblOrder where OrderStartTime >= '2013 ...

  10. [转]使用Composer管理PHP依赖关系

    简介 现在软件规模越来越大,PHP项目的开发模式和许多年前已经有了很大变化.记得初学PHP那会儿,boblog是一个很好的例子,几乎可以代表 PHP项目的开发模式.当时PHP 5.x以上的版本刚开始流 ...