Python基础之数据基本类型之(dict)
字典
- 字典(dictionary)是一种可变容器的类型,且可存储任意类型对象。
- 字典的每个(key:value)对用冒号(:),每个对之间用逗号(,)分隔
- 键(key)必须是唯一的,但键必须是不可变的,如字符串,数字,元祖
字典的特性:
- 不允许同一个键(key)出现两次,创建时如果同一个key被赋值两次,后一个值会被记住。
- 键(key)必须是可变的,所以用数字,字符串或元祖充当,列表不行。
- 字典是无序的
字典的意义:我们可以找出某个key对应的value;列表和元祖,都是一种容器,但是只是储存单一的元素。
举例说明:
一个班级,要找出“小明”相应的信息,如果这个班级可能两个人或多个人叫同一个名字,那么我们需要通过唯一(key)的学号, 来获取相应学号的姓名,年级,班级,性别等等
1.字典的基本操作
a.创建字典
1.dict1={} 2.dict2=dict()
b.增加
dict1['stu006']='yangjian'
dict1.update({'a":2})
c.删除
del grade1['stu001'] #删除特定key grade1.pop('stu002') #删除特定key grade1.popitem() #随机删除某一key grade1.clear() #清空字典 del grade1 #删除字典
d.修改
grade1['stu001'] = '小贱' #如果没有该key,则在字典创建新的的的key-value
e.查询
print('stu005' in grade1) #查询该key是否在字典里,返回 True or false print(grade1.get('stu001')) #查询该key的值,如没有该key 则返回None print(grade1['stu001']) #查询已知key,如没有该key。则会有语法错误KeyError
f.其他用法
#dict.fromkeys() 创建一个新字典,以序列(seq)中元素做字典的key,value为字典所有键(key)对应的初始值 dict1 = dict.fromkeys([1,2,3,4],'a') print(dict1) {1: 'a', 2: 'a', 3: 'a', 4: 'a'} #grade1.get()返回指定键的值,如果只不在字典中返回None值 print(grade1.get('stu007')) #grade1.items() 以列表返回可遍历的(key,value)元祖数组 print(grade1.items()) #dict_items([('stu003', 'xiaowang'), ('stu005', 'xiaoyang'), ('stu002', 'xiaoming'), ('stu001', 'xiaojian'), ('stu004', 'xiaoli')]) # grade1.keys() 以列表形式,返回一个字典的所有键 print(grade1.keys()) # dict_keys(['stu002', 'stu001', 'stu003', 'stu004', 'stu005']) # grade1.setdefault(key,default=None)和get()类似,如果有该键,则获取该键的值,但如果键不存在字典中,将会添加键并将值设为default print(grade1.setdefault('stu005','aaa')) #在字典中有该key # xiaoyang print(grade1.setdefault('stu007','小王')) #在字典中没有该key # 小王 # dict1.update(dict2) 把字典2的更新到字典一的值 #grade1.values() 以列表返回字典中的所有值 print(grade1.values()) dict_values(['xiaoming', 'xiaowang', 'xiaojian', 'xiaoyang', 'xiaoli'])
2.字典的方法
序号 | 函数及描述 |
---|---|
1 | dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | dict.items() 以列表返回可遍历的(键, 值) 元组数组 |
7 | dict.keys() 以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update({'k1':'v1'} OR k1=v1) 把字典dict2的键/值对更新到dict里 |
10 | dict.values() 以列表返回字典中的所有值 |
11 |
dict.popitem() 随机删除,并获取删除的键值以元组形式返回 |