1. 字典类型
- 键值对:映射类型
- 存储:无序的
2. 字典基本语法
名字 {
keys:values,
keys:values,
keys:values
}
3. 根据元素输出索引号
subject = ['语文','数学','英语','物理','化学','生物']
score = [90,100,91,92,93,94]
print(subject.index('生物'))
# 输出 :5
print('你的生物成绩是',score[subject.index('生物')])
# 输出:你的生物成绩是 94
4.把上边的实例变成字典形式
# 字典的定义
school = {
'语文':'90',
'数学':'100',
'英语':'91',
'物理':'92',
'化学':'93',
'生物':'94'
}
# 字典的使用
# 通过键值对查值
school['物理']
# 输出:'92'
print('你的物理成绩是',school['物理'])
# 输出:你的物理成绩是 92
5. 帮助
help(dict)
6. help文档的几种字典定义方式
# dict() 初始化为空
dict1 = dict()
# dict(mapping) 一个参数,
dict2 = dict((('a',97),('b',98),('c',99)))
# dict(**kwargs) 赋值形式 For example: dict(one=1, two=2)
# key默认为字符串,所以定义时不加'单引号'
dict3 = dict(one = 1,two = 2,three = 3,four = 4)
# d[k] = v 更改字典的值,不存在,则添加
dict3['five'] = '⑤'
7. 查询 keys(),values(),items()
# 定义一个字典
dict1 = dict((['one',1],['two',2],['three',3]))
# keys()查看键值
dict1.keys()
# 输出:dict_keys(['two', 'one', 'three'])
# values()查看值
dict1.values()
# 输出:dict_values([2, 1, 3])
# items()查看整体
dict1.items()
# 输出:dict_items([('two', 2), ('one', 1), ('three', 3)])
8. 判断值是否在字典里
定义一个字典
dict1 = dict((['one',1],['two',2],['three',3]))
8.1 _contains__(...)
根据key判断是否存在(返回True/False)
dict1.__contains__ (1)
# 输出:True
8.2 in not in
(True/False)
#
'one' in dict1
# 输出 :True
'two' not in dict1
# 输出 :False
8.3 get()
# 有
dict1.get('one')
# 输出:1
# 没有
dict1.get('ten','没有输出这句话!!!')
# 输出:'没有输出这句话!!!'
9. 清空字典 clear()
# 定义字典
dict1 = dict((['one',1],['two',2],['three',3]))
# clear()
dict1.clear()
# 查看
dict1
# 输出:{}
10. 浅拷贝copy()
和直接赋值(存储地址用id()
判断)
- 浅拷贝
地址不同
- 直接赋值
地址相同
# 定义字典
dict1 = dict((['one',1],['two',2],['three',3]))
# 浅拷贝
dict2 = dict1.copy()
# 赋值
dict3 = dict1
# 查看地址
id(dict1)
# 输出:111
id(dict2)
# 输出:222
id(dict3)
# 输出:111
11. 删除 __delitem__(...)
# __delitem__(...) 删除
dict1.__delitem__ ('one') # 等价于 del dect1['one']
12. 删除并返回值-pop()
,随机删除并以元组的形式返回值popitem()
# 定义字典
dict1 = dict((['one',1],['two',2],['three',3]))
# popitem()
dict1.popitem()
# 输出:('two', 2)
# pop()
dict1.pop('one')
# 输出:1
13. setdefault()
- setdefault(key)-------------根据key返回valve
- setdefault(key,value)-----查不到,就添加,并返回值
- setdefault(key,update-value)-----更改原有键值对的value,
行不通
# 定义字典
dict1 = dict((['one',1],['two',2],['three',3]))
# setdefault(key)
dict1.setdefault('one')
# 输出:1
# setdefault(key,value)
dict1.setdefault('four',4)
# 输出:4
dict1
# 输出:{'four': 4, 'two': 2, 'one': 1, 'three': 3}
# setdefault(key,update-value)
dict1.setdefault('four','四')
# 输出:4
dict1
# 输出:{'four': 4, 'two': 2, 'one': 1, 'three': 3} # 4 未被更改
14 更新 update() -添加元素
# 定义字典
dict1 = dict((['one',1],['two',2],['three',3]))
# 方式 1
dict1.update({'five':5})
dict1
# 输出:{'five': 5, 'two': 2, 'one': 1, 'three': 3} #{'five':5}被添加进dict1
# 方式 2
# 定义字典dict2
dict2 = {True:'正确'}
# 把dict2添加进dict1中
dict1.update(dict2)
dict1
# 输出:{True: '正确', 'two': 2, 'one': 1, 'three': 3}