day05 python字典
day05 python
一.字典
1.dict 用{}表示, 存放的是: key:value (开发的都知道的是键值对数据,这样说)
key: 关键字不能重复, 不可变 (什么样的数据类型可以用做key: 不可变, 唯一的数据类型, 如数字, 字符串, bool, 元组)(不可变又称为可哈希)
hash: 哈希是一种算法,
2.字典的增删改查
增
dic = {}
dic['name'] = 'bajie' #强制添加, 或强制修改
print(dic)
dic.setdefault('name','wukong') #如果key存在则不添加, 不存在时才添加
print(dic)
删
dic.pop('name') #需要通过key键去pop, 有返回值,返回value 的值
print(dic)
dic.popitem() #随机删, 有返回值, 返回一个元组
print(dic)
del dic['age'] #删一个键值对
print(dic)
dic.clear() #结果是{}, 清空一个字典
print(dic)
#dic.remove() #字典没有这个操作
改
dic = {'name':'wukong', 'age':20}
dic['name'] = 'bajie' #强制修改
print(dic)
dic.update({1:'1', 2:'2', 'age':100}) #和列表的extend类似, key已经存在了,就是强制修改
print(dic)
#dic.setdefault('age', 66) #用这个改不了, 只能添加
#print(dic)
查
print(dic['name']) #用key直接查value, 没有key 在字典中,会报错
print(dic.get('old','not found')) #没有key时, 不报错, 返回你写的默认值(不写的时候返回 None)
print(dic.setdefault('name')) #也可以查, 是因为, 它先去查, 然后再去确定是否操作
for item in dic: #for 循环默认是获取字典中的key键
print(item)
3.字典的其他操作
print(dic.keys())
>>>dict_keys(['name', 'age', 1, 2]) #结果是高仿列表, 不能用index取值, 能用 for 取值
print(dic.values())
>>>dict_values(['wukong', 20])
print(dic.items())
>>>dict_items([('name', 'wukong'), ('age', 20)])
4.解构(解包)
a,b = 1,2 #这个是元组
a,b = (1,2)
a,b = '12' #字符串
a,b = [1,2] #列表
a,b = {'name':1,'age':2} #字典
a,b = {1,2} #集合
#a,b = 12 #单个数字不行, 因为前后的位置个数要相同, 才可以解构
print(a,b)
5.批量创建字典(几乎没人用)
dic1 = {}
dic2 = dic1.fromkeys([1,2,3],'abc')
print(dic2)
>>>{1: 'abc', 2: 'abc', 3: 'abc'}
6.字典的嵌套
dic = {
'name':'bajie',
'age':'66',
'wife':{
'name':'datang',
'age':'20'
},
'boby':[
{'name':'daxiong','age':3},
{'name':'erxiong','age':4}
]}
print(dic['boby'][0]['age'])