1. 字典
可变类型与不可变类型:
判断方法:
(1)id(X)。对X进行某种操作,比较前后的 id 是否一样。
(2)hash(X)。只要不报错,就证明X可被哈希,就不可变,否则是可变类型。
数值、字符和元组都是不可变类型;列表、集合、字典是可变类型。
字典是Python里面唯一一个映射类型,字符串、元组和列表都属于序列类型。
字典要求关键字为任意不可变类型。关键字一般为数值和字符串,很少采用数组。
定义:
字典是无序的键值对集合,在一个字典内,关键字不能重复。
字典定义语法为{元素1,元素2,······}。用 {} 把元素绑在一起,逗号将每个元素分开,每一个元素都是一个键值对,为(key:value)格式。
创建和访问:
创建:
(1)dict() 定义一个空字典。
(2)dict(mapping) 以键值对的形式对字典进行初始化。
(3)dict(**kwags) 传参的形式构建字典。
dic1 = {
1: 'one', 2: 'two', 3: 'three'}
dic = dict()
dic['a'] = 1
dic['b'] = 2
dic['c'] = 3
dic1 = dict([('a',1),('b',2),('c',3)])
dic2 = dict((('a',1),('b',2),('c',3)))
dic = dict(name = 'Tom', age = 10) # 创建的时候字符串不能加引号
访问:通过关键字访问,关键字作为索引,和列表基本相同。
内置方法:
(1)dict.fromkeys(seq[, value]):创建一个新字典,键为seq中的元素,value为所有元素的初始值,默认为None。
(2)dict.keys():返回一个可迭代对象(所有的键),可用list()变为列表。
(3)dict.values():返回一个迭代器(所有的值),可用list()变为列表。
(4)dict.items():返回可遍历的(键,值)数组。
(5)dict.get(key, default=None):返回指定键的值,如果不存在,返回默认值。
(6)dict.setdefault(key, default=None):和get()类似,如果键不存在于字典中,则添加键并将值设为默认值。
(7)dict.pop(key[,default]):删除对应的值,并返回。
(8)del dict[key]:删除对应的值。
(9)dict.popitem():随机返回并删除一对键和值。
(10)dict.clear():删除所有元素。
(11)dict.copy():浅复制。深拷贝(不随之改变)父对象(一级目录),子对象(二级目录)不拷贝,还是引用(随之改变)。
(12)dict.update(dict2):把字典参数 dict2 的 key: value 对更新到字典 dict 里。
练习:
- 字典基本操作
dic = {
'python': 95, 'java': 99, 'c': 100}
print('字典的长度为', len(dic)) # 字典的长度为 3
dic['java'] = 98
dic.pop('c')