`
javatome
  • 浏览: 822336 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

第7章 映像和集合类型(2)

 
阅读更多

7.3.2 映射类型相关的函数

dict() 如果参数是可以迭代的,即一个序列,或是一个迭代器,或是一个支持迭代的对象,则每个可迭代的元素必须成对出现。

如果输入参数是另一个映射对象,新生成的字典是原来字典对象的浅复制版本,它与用字典的内建方法copy()生成的字典对象是一样的。
>>> dict([[1,2],[2,3],[3,4]])
{1: 2, 2: 3, 3: 4}
>>> dict1 = {1:"a", 2:"b"}
>>> dict2 = dict1
>>> dict2
{1: 'a', 2: 'b'}
>>>

len() 返回所有元素键值对的数目。

hash() 可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给hash(),会返回这个对象的哈希值。只有这个对象是可哈希的,才可以作为字典的键。

>>> hash(1000)
1000
>>> hash('123')
1911471187
>>> hash((1,2,3))
-378539185
>>>

7.4 映射类型的内建方法

keys() 返回一个列表,包含字典中所有的键

values() 返回一个列表,包含字典中的所有值

items 返回一个包含所有元组的列表。

这些方法在不按任何顺序遍历字典的键或值时很有用。

update() 可以用来将一个字典的内容添加到另外一个字典中。字典中原有的键如果与新添加的键重复,那么重复键所对应的原有条目的值将被新键所对应的值所覆盖。原来没有的条目则被添加到字典中。

clear() 可以用来删除字典中所有的条目。

>>> dict1 = {1:"a", 2:"b"}
>>> dict1.keys()
[1, 2]
>>> dict1.values()
['a', 'b']
>>> dict1.items()
[(1, 'a'), (2, 'b')]
>>> dict1.update({1:"Z", 3:"r"})
>>> dict1
{1: 'Z', 2: 'b', 3: 'r'}
>>> dict1.clear()
>>> dict1
{}
>>>

copy()方法返回一个字典的副本。注意这只是浅复制。

get()方法和键查找操作符[]类似,不同的是它允许你为不存在的键提供默认值。如果该键不存在也未给出它的默认值,则返回None。此方法比采用键查找更灵活,因为不必担心键不存在而引发异常。

>>> dict1 = {1:"a", "2":"d", "3":"e", 4:"aa"}
>>> dict1.get("2")
'd'
>>> dict1.get("4")
>>> dict1.get("4", 'None')
'None'
>>>

setdefault()检查字典中是否含有某键。如果字典中这个键存在,你可以取到它的值。如果所找的键在字典中不存在,你可以给这个键赋默认值并返回此值。

>>> dict1 = {1:"a", "2":"d", "3":"e", 4:"aa"}
>>> dict1.setdefault("4", "None")
'None'
>>> dict1.setdefault(4, "None")
...
'aa'
>>>

7.5 字典的键

7.5.1 不允许一个键对应多个值

每个键只能对应一个项。

7.5.2 键必须可哈希的

大多数Python对象可以用作键;但它们必须是可哈希的对象。像列表和字典这样的可变类型,由于它们不是可哈希的,所以不能作为键。

所有不可变的类型都是可哈希的,因此他们都可以作为字典的键。值相等的数字表示相同的键。

用元组做有效的键,必须要加限制:元组中只包括像数字和字符串这样的不可变参数,才可以作为字典中有效的键。


分享到:
评论

相关推荐

    Python核心编程(第二版)PDF高清 part1 共2部分

    第7章 映像和集合类型 第8章 条件和循环 第9章 文件和输入输出 第10章 错误和异常 第11章 函数和函数式编程 第12章 模块 第13章 面向对象编程 第14章 执行环境 第2部分 高级主题 第15章 正则表达式 第16章...

    Python核心编程第二版 高清文字版

    第7章 映像和集合类型 第8章 条件和循环 第9章 文件和输入输出 第10章 错误和异常 第11章 函数和函数式编程 第12章 模块 第13章 面向对象编程 第14章 执行环境 第2部分 高级主题 第15章 正则表达式 第16章...

    Python核心编程 第二版

    第7章 映像和集合类型 第8章 条件和循环 第9章 文件和输入输出 第10章 错误和异常 第11章 函数和函数式编程 第12章 模块 第13章 面向对象编程 第14章 执行环境 第2部分 高级主题 第15章 正则表达式 15.1 ...

    Python 核心编程 第二版

     第7章 映像和集合类型   7.1 映射类型:字典   7.2 映射类型操作符   7.3 映射类型的内建函数和工厂函数   7.4 映射类型内建方法   7.5 字典的键   7.6 集合类型   7.7 集合类型操作符   ...

    数据库系统原理第一章习题.docx

    数据库系统原理第一章习题全文共2页,当前为第1页。数据库系统原理第一章习题全文共2页,当前为第1页。第1章 绪论 数据库系统原理第一章习题全文共2页,当前为第1页。 数据库系统原理第一章习题全文共2页,当前为第1...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   ...

    Python核心编程第二版(ok)

     第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   ...

    Python核心编程第二版

     第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   7.1.3 如何更新字典   7.1.4 如何删除字典元素和字典   7.2 映射类型操作符   ...

    数据库系统原理第一章习题(2).doc

    第1章 绪论 一、选择题 1、数据库系统的核心和基础是( )。 A. 物理模型 B. 概念模型 C. 数据模型 D. 逻辑模型 2、实现将现实世界抽象为信息世界的是( )。 A. 物理模型 B. 概念模型 C. 关系模型 D. 逻辑模型 3、...

    数据库系统原理第一章习题.doc

    第1章 绪论 一、选择题 1、数据库系统的核心和基础是( ). A. 物理模型 B。 概念模型 C. 数据模型 D。 逻辑模型 2、实现将现实世界抽象为信息世界的是( )。 A. 物理模型 B. 概念模型 C. 关系模型 D. 逻辑模型 3、...

    数据库系统原理第一章习题(1).doc

    第1章 绪论 一、选择题 1、数据库系统的核心和基础是( ). A。 物理模型 B. 概念模型 C。 数据模型 D. 逻辑模型 2、实现将现实世界抽象为信息世界的是( )。 A. 物理模型 B. 概念模型 C. 关系模型 D. 逻辑模型 3、...

    数据库系统原理第一章习题(3).doc

    第1章 绪论 一、选择题 1、数据库系统的核心和基础是( )。 A. 物理模型 B. 概念模型 C. 数据模型 D. 逻辑模型 2、实现将现实世界抽象为信息世界的是( )。 A. 物理模型 B. 概念模型 C. 关系模型 D. 逻辑模型 3、...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    第7章 DDL和模式对象 213 7.1 分类主要的数据库对象 214 7.1.1 对象类型 214 7.1.2 命名模式对象 215 7.1.3 对象名称空间 216 7.2 列举列可用的数据类型 217 7.3 创建简单的表 219 7.3.1 使用列规范创建表 ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    第7章 DDL和模式对象 213 7.1 分类主要的数据库对象 214 7.1.1 对象类型 214 7.1.2 命名模式对象 215 7.1.3 对象名称空间 216 7.2 列举列可用的数据类型 217 7.3 创建简单的表 219 7.3.1 使用列规范创建表 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

Global site tag (gtag.js) - Google Analytics