python基础知识(三)字典

(三)字典

目录

(三)字典

3.1字典

3.2字典的操作

3.3嵌套


3.1字典

     不可变数据类型:int bool str 元组

     可变数据类型:list dict set 

     字典是一系列键-值对。每一个键都与一个值相关,可以使用键访问与之相关的值。

     字典的key是不可变数据类型,value是随意的

     字典用放在花括号{}中的一系列键-值表示,如

dict1 = {'name':'a','age':16,'sex':'male'}

3.2字典的操作

    a.访问字典的值

dict1 = {'name':'a','age':'16','sex':'male'}
print(dict1['name']) #a

   b.添加 setdefault

dict1 = {'name':'a','age':'16','sex':'male'}
dict1['hight'] = 123 #没有键值对,添加
dict1['age'] = 13 #有键值,值覆盖

//有键值对则不进行操作,没有则添加(注意是逗号)
ret = dict1.setdefault('name','b') 
print(dict1)
print(ret)
//{'name':'a','age':'16','sex':'male'}
//a

dict1.setdefault('weight',132) 
print(dict1)
//{'name':'a','age':'16','sex':'male','weight':132}

dict1.setdefault('weigth') #默认值为None
print(dict1)
{'name': 'b', 'heigh': 168, 'weigth': None}
setdefault('key',添加类型).类型方法

dict = {'a': 1,'b' : 2}
dict.setdefault('c',[]).append(3)
dict.setdefault('c',[]).append(4)
print(dict)

//{'a': 1, 'b': 2, 'c': [3,4]}

dict = {'a': [1],'b' : 2}
dict.setdefault('a',[]).append('3')
print(dict)

//{'a': [1, '3'], 'b': 2}

defaultdict

from collections import defaultdict
dict1 =defaultdict(list)
dict1['c'].append(3)
print(dict1)

//defaultdict(<class 'list'>, {'c': [3]})

c.删除

#pop()
print(dict1.pop('age')) //有返回值,按键值删除
print(dict1.pop('aa','没有这个键')) //可设置返回值,没有aa就会返回‘没有这个键’
print(dict1)

#popitem()
dict1.popitem() //随机删除,现在版本有序,删除最后一个
                //返回一个元组,删除的是键值
print(dict1)

#del
del dict1['name']
print(dict1)

#clear()
dict1.clear()  //清空
print(dict1)

   d.改update

#改 update 覆盖添加
dict1['age'] = 13 #直接改

//update 有则修改,无则增加
dict2 = {'name':'b','heigh':168} 
dict2.update({'age':15}) //更新dict2 updata({'age':15})
print(dict2)

dict2.update({'name':'a'})
print(dict2)

//{'name': 'b', 'heigh': 168, 'age': 15}
//{'name': 'a', 'heigh': 168, 'age': 15}

  e.查(遍历)

#查
print(dict1.keys())
print(dict1.values())
print(dict1.items())   #dict_items([(2, 3), (1, 2)]) 元组

#i接收键 j接收值
for i,j in dict1.items():
    print(i,j)

print(dict1['name'])
print(dict1.get('name1','没有这个键')) #get默认返回None
#print(dict1['name1'])#报错

3.3嵌套

     a.字典列表

dict0 = {'name':'dict0'}
dict1 = {'name':'dict1'}
dict2 = {'name':'dict3'}
dict = [dict0,dict1,dict2]
for i in dict:
    print(i)
#
{'name': 'dict0'}
{'name': 'dict1'}
{'name': 'dict3'}

   b.在字典里存储列表,字典

dic = {'name':['a','b','c'],
       'py':{'time':'0411',
             'add':'asd'
             },
       'age':'22'
       }
dic['name'].append('d')
dic['name'][1] = dic['name'][1].upper()
print(dic)
dic['py']['female'] = 4
print(dic)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值