1. 字典概述
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示
d = {key1:value1, key2:value2}
字典的特性:
- 字典的key必须为不可变数据类型,例如数值类型、字符串、元组类型
- 字典的key不可以重复,若定义重复则后面的键值会覆盖前面的,值是可以重复的;
- 字典是无序的,所以无法通过数值索引来访问,必须通过key来访问
举例:
x = {'tom':99, 'tany':66, 1 : 2, ('imgs/zzz/1.jpg', 'imgs/zzz/2.jpg') : 69.3, 'skills':['english', 'programing', 'play football'], 'tom':60}
print(x, type(x))
2. 字典的定义
字典的定义可以通过dict函数和花括号{}来定义。
2.1 dict函数
首先看一下dict()函数的描述:
dict?
从输出的描述信息中可知,dict可支持多个参数:
x = dict()
print(x, type(x))
{} <class ‘dict’>
- 不为空,且参数为1个参数,且参数为映射对象key-value键值对
x = dict({'one':1, 'two':2})
x
{‘one’: 1, ‘two’: 2}
x = dict(one=1, two=2, three=3) # 注意:one,two,three输入的参数不是字符串,创建后变为字符串
x
{‘one’: 1, ‘two’: 2, ‘three’: 3}
2.2 花括号{}
x = {}
print(x, type(x))
{} <class ‘dict’>
x = {'tom':99, 'tany':66}
print(x, type(x))
2.3 字典的特性
- 字典的key必须为不可变数据类型,例如数值类型、字符串、元组类型
x2 = {'tom':99, 1.2:3.4, 7+8j : 1+2j, (1,2):(3, 4)} # key分别为字符串、浮点数值类型、复数数值类型、元组,他们都是不可变数据类型
print(x2, type(x2))
{‘tom’: 99, 1.2: 3.4, (7+8j): (1+2j), (1, 2): (3, 4)} <class ‘dict’>
异常的数据定义
x3 = {[12, 3, 4]: [1, 4, 8], {1, 3, 4} : {23}} # 分别为列表key、字典key,它们都是可变数据类型,因此不能作为key
- 字典的key不可以重复,若重复,则后值会覆盖前值;值可重复
x4 = {'name':'chairs', 'score':68, 'score' : 89}
print(x4, type(x4))
3. 字典的常用用法
用dir函数查询字典变量支持的属性和方法
x = {'tom':99, 'tany':66}
dir(x)
[‘class’, ‘contains’, ‘delattr’, ‘delitem’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘getitem’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘iter’, ‘le’, ‘len’, ‘lt’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘setitem’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘items’, ‘keys’, ‘pop’, ‘popitem’, ‘setdefault’, ‘update’, ‘values’]
|