字典在某些语言中可能称为 联合内存 (associative memories) 或 联合数组 (associative arrays)。序列是以连续的整数为索引,与此不一样的是,字典以"关键字"为索引,关键字能够是任意不可变类型,一般用字符串或数值。若是元组中只包含字符串和数字,它能够做为关键字,若是它直接或间接地包含了可变对象,就不能当作关键字。不能用列表作关键字,由于列表能够用索引、切割或者 append() 和 extend() 等方法改变。html
字典是无序的键:值对 (key:value 对)集合,键必须是互不相同的(在同一个字典以内)。使用大括号建立一个空的字典:{}。初始化列表时,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。数组
字典的主要操做是依据键来存储和取值。也能够用 del 来删除键:值对(key:value),从一个不存在的键中取值会致使错误。浏览器
In [2]: tel = {'jack': 4098, 'sape': 4139}tel['guido'] = 4127print telprint tel['jack'] {'sape': 4139, 'jack': 4098, 'guido': 4127} 4098 In [3]: del tel['sape']tel['irv'] = 4127print telprint tel.keys()print'guido' in tel {'jack': 4098, 'irv': 4127, 'guido': 4127} ['jack', 'irv', 'guido'] True
序列运算无效,字典元素间是没有顺序的概念数据结构
对新索引赋值会添加项app
键不必定老是字符串函数
字典键也经常使用于实现稀疏数据结构。例如,**数组中只有少数位置上有存储的值:ui
In [5]: tel.get('kkk',0) #返回指定键的值,若是值不在字典中返回default值 Out[5]: 0
dict() 构造函数能够直接从 key-value 对中建立字典spa
In [6]: dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) Out[6]: {'guido': 4127, 'jack': 4098, 'sape': 4139} In [7]: dict.fromkeys(['a','b'],0) #建立一个新字典,以序列seq中元素作字典的键,val为字典全部键对应的初始值 Out[7]: {'a': 0, 'b': 0} In [8]: dict(zip(['a','b','c'],[1,2,3])) Out[8]: {'a': 1, 'b': 2, 'c': 3} In [9]: {k:v for (k,v) in zip(['a','b','c'],[1,2,3])} Out[9]: {'a': 1, 'b': 2, 'c': 3}
此外,字典推导式能够从任意的键值表达式中建立字典:code
In [10]: {x: x**2 for x in (2, 4, 6)} Out[10]: {2: 4, 4: 16, 6: 36}
若是关键字都是简单的字符串,有时经过关键字参数指定 key-value 对更为方便:htm
In [11]: D = dict(a=1,b=2,c=3)D Out[11]: {'a': 1, 'b': 2, 'c': 3} In [12]: {c:c*4 for c in 'JoinQuant'}#默认是集合 Out[12]: {'J': 'JJJJ', 'Q': 'QQQQ', 'a': 'aaaa', 'i': 'iiii', 'n': 'nnnn', 'o': 'oooo', 't': 'tttt', 'u': 'uuuu'} In [13]: {c:c*4 for c in ['JoinQuant']} Out[13]: {'JoinQuant': 'JoinQuantJoinQuantJoinQuantJoinQuant'} In [14]: {c.lower():c*4+'!' for c in 'JoinQuant'} Out[14]: {'a': 'aaaa!', 'i': 'iiii!', 'j': 'JJJJ!', 'n': 'nnnn!', 'o': 'oooo!', 'q': 'QQQQ!', 't': 'tttt!', 'u': 'uuuu!'}
咱们通常都很愿意使用DataFrame,由于它方便,显示清楚,可是其建立和操做速度较慢,若是你对程序运行速度有较高要求, 能够考虑使用dict。目前平台中使用到的字典主要有:
具体能够在浏览器中按快捷键Ctrl + F,搜索“dict”,查看详细帮助。
In [ ]:
相关阅读: