字典:它是一个容器类型,能存储任意个数的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. java实现双向链表

    PS:双向链表(每个节点含有指向前一个节点的前驱与后一个节点的后继) public class DoublyLinkedList { static class Node { private Objec ...

  2. DSP与单片机的区别

    以前刚学习单片机时,经过一订的编程,能实现很多不同的功能,当时就觉得单片机真的是神通广大.后来接触到DSP,发现DSP处理数字在通信上,更加方便.于是我就很好奇的问自己,DSP和单片机,究竟有什么区别 ...

  3. 股票市场问题(The Stock Market Problem)

    Question: Let us suppose we have an array whose ith element gives the price of a share on the day i. ...

  4. RequireJS入门(一)

    RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以 ...

  5. Android之Intent

    前言:大家都知道Android程序的实现一般都由四大组件构成: Activity :Android程序实现功能的主体,提供了和客户交互的界面,也提供了和后台交互的功能. Service :是一个没有界 ...

  6. python高级编程技巧

    由python高级编程处学习 http://blog.sina.com.cn/s/blog_a89e19440101fb28.html Python列表解析语法[]和生成 器()语法类似 [expr  ...

  7. LVM管理

    一.步骤: 1.创建新的分区,并修改分区类型为8e 2.创建物理卷PV 3.将新建的PV添加到要扩展的VG中 4.用命令lvextend或lvresize来将新加入的PE添加到要扩展的LV中 5.用命 ...

  8. Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42407923 ,本文出自:[张鸿洋的博客] 1.概述 话说,随着Android ...

  9. 8个常用的Android开发工具

    周末发现一些比较有用的android开发常用的工具,里面大部分是自己经常用的,还有一些暂时很少用,暂且在这里记录下,以后一定同样会经常用到的. 1 The SDK and AVD Manager 这个 ...

  10. App版本更新时对SQLite数据库升级或者降级遇到的问题

    SQLite是Android内置的一个很小的关系型数据库.SQLiteOpenHelper是一个用来辅助管理数据库创建和版本升级问题的抽象类.我们可以继承这个抽象类,实现它的一些方法来对数据库进行自定 ...