1 什么是字典(Dictionary)?

字典是Python中唯一内建的映射类型,可以建立对象之间的映射关系。字典的每一个元素可以形成key-value对(键-值对)。

key - 键,可以是数字、字符串、元组等不可变的类型,因而不能是列表!

value - 值,无序的,仅和key有关。

2 创建字典

2.1{}直接创建

>>> aDict = {'a': 0.15, 'b': 0.3, 'c': 0.45}

# 创建一个空字典

>>> Dict0 = {}

2.2 dict()函数

2.3 {}.fromkeys函数

用于生成值相同的字典。

2.4 dict()与zip()函数结合使用

dict(zip(keys, values))

2.5 脚本示例

3 字典的基本操作

键值查找,更新,添加,成员判断,删除字典成员

注:序列通过索引来确定对象,而字典通过键来确定对象。

>>> aDict = {'a': 1, 'b': 2, 'c': {'c': 3, 'd': 4}}

>>> aDict['c']['d']

>>> 4

5 字典作为可变长关键字参数

- 字典可以作为函数的特殊类型参数,如可变长关键字参数。

5 字典的内建函数

dict() - 创建字典

len() - 键值对个数

hash() - 哈希函数,返回对象的哈希值。哈希值是哈希算法生成的一段二进制值,不同的数据具有不同的哈希值。可变的对象是不可哈希的,而不可变的对象是可哈希的,具有哈希值。

6 字典方法

#-----------------------------------------------------------------------

提取字典的键和值 - keys(), values(), get(), setdefault()

#-----------------------------------------------------------------------

keys() - 返回一个列表,元素为字典中所有的key。

Dict1.keys()

values() - 返回一个列表,元素为字典中所有的value。

Dict1.values()

get() - 返回指定键的值,如果键不在字典中,默认无返回值。

Dict1.get(key1, defaults=None)

setdefalut() - 同get()。

Dict1.setdefault(key1, defaults=None)

key1 — 需要被检索的键。强制参数。

注:上例中,‘d’不是aDict的键,若此时运行aDict['d'],程序会因出现异常而终止;而get()则不返回值,且不出现异常,不会终止程序,因而推荐使用get()方法。

#--------------------------------------------------------------------------

判断键是否在字典中 - has_key() 对比: in, not in 操作符

#--------------------------------------------------------------------------

has_key() - 判断键是否存在于字典中,如果键在字典里,返回True,否则返回False。仅存在于Python2!

Dict1.has_key(key1)

key1 — 需要被检索的键。强制参数。

对比:

in - 判断键是否存在于字典中,如果键在字典里,返回True,否则返回False。

not in - 判断键是否不存在于字典中,如果键不在字典里,返回True,否则返回False。

#-----------------------------------------------------------

遍历字典的键值元组 - items() 对比:for 循环

#-----------------------------------------------------------

items() - 以列表返回可遍历的(键, 值) 元组数组。

Dict1.items()

#-------------------------------------------------------------

删除字典的元素 - clear(), pop() 对比: del 语句

#-------------------------------------------------------------

clear() - 清空字典,将原先的字典变为空字典。

Dict1.clear()

pop() - 弹出指定的键值对,并返回字典中指定键的值。修改原字典。

Dict1.pop(key1)

key1 — 被弹出值对应的键。强制参数。

对比:

del 语句 - 删除字典,原先的字典不复存在。也可删除字典中的某个键值对。

del Dict1

del Dict1[key1]

#-------------------------------------------------------

创建新字典 - fromkeys()

#-------------------------------------------------------

fromkeys() - 创建一个新字典,以序列seq中的元素做字典的键,val为字典所有键对应的初始值,默认为None。

{}.fromkeys(seq, val)

seq — 一个序列,其元素为新字典的键。强制参数。

val — 新字典里所有键对应的初始值,若不设置则默认为None。可选参数。

#---------------------------------------------------------------------

更新字典的键值对 - update() 对比:直接添加键值对

#---------------------------------------------------------------------

update() - 把字典Dict2的键值对更新(包括以新换旧和添加)到Dict1中,无返回值。

Dict1.update(Dict2)

Dict2 — 需要被添加和更新到Dict1的字典。强制参数。

对比:

直接添加键值对

Dict1[a_key]=a_value

a_key — 需要被添加到字典Dict1的键。强制参数。

a_value — 需要被添加到字典Dict1的与a_key对应的值。强制参数。

#----------------------------------------------------------------

字典的浅复制 - copy() 对比:对象赋值

#----------------------------------------------------------------

copy() - 返回字典的浅复制。

Dict1.copy()

转载本文请联系原作者获取授权,同时请注明本文来自刘洋洋科学网博客。

链接地址:http://blog.sciencenet.cn/blog-3031432-1060765.html

上一篇:Python:元组

下一篇:Matlab:创建NaN矩阵

python字典用法_科学网—Python:字典和字典方法 - 刘洋洋的博文相关推荐

  1. python 面板数据分析_科学网—Python中的结构化数据分析利器-Pandas简介 - 郑俊娟的博文...

    此文转载于XXXXXX处... Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数 ...

  2. python读取网站_科学网—python 获取网址 - 林清莹的博文

    Python获取网址的内容# coding=utf-8 import urllib url = "http://www.baidu.com" data = urllib.urlop ...

  3. python 数据去重_科学网—python学习——根据条件提取数据,并去重 - 李立的博文...

    [Python字符串提取] 摘要:根据要求进行字符串的提取,并去重 导入分析所需的库import pandas as pd 构造数据集 as1 = pd.DataFrame({'a':[1,2,3,4 ...

  4. python编程口诀_科学网—Python编程技巧汇总 - 高关胤的博文

    正在学习python编程,把一些小技巧记录下来备查 ======================计算技巧========================== 正常的条件语句如下if a>b:c= ...

  5. python提取句子_科学网—Python提取句子 - 吕波的博文

    将一段话中的句子分离出来不是一件容易的事.因为句子的开头和结尾并不是很规则,而且句子内部会出现句号.这使得通过单一的正则表达式分离句子是不可能的.有时你能成功,但大多数时候你会出错.这里我们用nltk ...

  6. python字母频率_科学网-Python统计字母频数和频率-吕波的博文

    方案一 统计字符串中的字母频数 import collections import re d = collections.defaultdict(int) S = "testTypecopy ...

  7. python离散积分_科学网—python数据处理笔记(三)通道积分图 - 钱磊的博文

    通道积分是除了p-v图外又一件分析分子云气体运动的利器.在不同的通道查看,可以看到一些速度不同寻常的气体,这些气体就是恒星形成研究中十分感兴趣的高速气体.这些高速气体对于分子云中的能量平衡以及恒星的形 ...

  8. python笔记图片_科学网—python数据处理笔记(二)p-v图 - 钱磊的博文

    python数据处理笔记(二)p-v图 已有 9903 次阅读 2012-5-24 17:46 |个人分类:知识|系统分类:科研笔记| Python, 分子云, 常用工具, p-v图 p-v图是分析分 ...

  9. python画箭头_科学网-Python matplotlib quiver—画箭头、风场、量场图-张伟的博文

    用像素点坐标画图 箭头关键的一个参数是长度,长度可以通过参数scale来设置,如果你多次使用quiver(),只要保证参数scale一致,那么箭头长度就会与风速 的值成正比,可按照下面我贴出的代码那样 ...

  10. python语法糖的本质_科学网—Python语法糖之:列表解析、集合解析和字典解析 - 陈同的博文...

    Python的列表解析 (list comprehensions)是在Python 2.0以来一直都有的功能,特别简洁.实用.而字典解析虽然曾经在Python 2.3版本中引入过,但后来因为与dict ...

最新文章

  1. 西瓜创客+Leangoo敏捷实践企业案例分享
  2. Badread: simulation of error-prone long reads
  3. android dropbox anr分析,Android如何分析排查ANR
  4. 简单 3 步实现高效编程
  5. nlv sqlserver_SQLServer数据类型
  6. FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
  7. micropython固件编译_Micropython编译固件的操作步骤
  8. 天涯明月刀手游服务器维护到几点,天涯明月刀手游11月11日服务器维护更新公告...
  9. C++模板的概念 定义和使用
  10. 通过PaddleOCR识别pdf数据
  11. python用Selenium爬取携程网机票信息
  12. web 系统发展历程
  13. 前端效果 -- 实现折叠、展开动画效果
  14. SCI英文论文写作- Latex 进阶
  15. python梨视频爬虫下载,反反爬
  16. 【AI测试】人工智能测试整体介绍
  17. 漏洞分析丨HEVD-10.TypeConfusing[win7x86]
  18. 使用final来修饰方法
  19. 【Python个人学习笔记】--- pyc文件(了解)
  20. 【文章阅读】The Devil is in the Decoder【计算机视觉中的上采样方式-6种】

热门文章

  1. 理解Ruby的4种闭包:blocks, Procs, lambdas 和 Methods
  2. LWUIT的绘图功能
  3. 66. 编写高效的 JavaScript
  4. 一个奇怪的发现:html与body,body的margin对html不起作用,html的padding对body却起作用
  5. css3中3d旋转中rotatex,rotatey,rotatez的旋转正方向
  6. APT攻防整理-攻击方法/工具
  7. 利用jmeter做一个简单的性能测试并进行参数化设置
  8. 2、linux网络编程--无连接与面向连接的区别
  9. Python——语言基础
  10. PHP Mysql-简介