字典的使用

一、特性

1.通过键值对来表示元素
2.key唯一且不可修改,若重复认为是同一个元素

二、增

1.dict_1={'key':'val1','key2':'val2'}
2.dict_2=dict(a=2,b=1)
3.list1=['a','b','c']    #key
  list2=[1,2,3]    #val
  res=dict.fromkeys(list1,list2)

三、删(通过key)

1.del dict_1[‘key1’]
2.dict_1.pop(‘key1’)
会返回被删除key的value
3.删除最后一项(后进先出):dict.popitems()
会返回被删除key的value
4.清空字典:dict_1.clear()

四、改

1.key存在是修改,如果key不存在,会自动新增一个键值对

dict_1={'key':'val1','key2':'val2'}
dict_1['key']=888

2.dict_1.setdefault(‘key’,‘value’)
key存在不做任何操作,key不存在会新增键值对

3.dict_1.update(dict_2)
将dict_2合并到dict_1,若key存在覆盖value;若不存在则新增键值对到dict_1

五、查

通过key来拿val

dict_1={'key':'val1','key2':'val2'}
1. res=dict_1['key1']
#get 不会报错,没有值就是none,若字典本来有key3则返回原来的val
2. res2=dict_1.get('key3','val3')

3.dict_1.keys()
4.dict_1 .values()
5.dict_1.items()

六、深浅拷贝

1.浅拷贝:只会拷贝第一级目录,第二级目录引用地址
2.深拷贝:会拷贝第一级目录和第二级目录

浅拷贝的二级目录类似保存网址,只是有了地址,里面的内容会随着原来内容的变化而变化
深拷贝二级目录类似下载,有了新的内存地址,内容并不会变化
在这里插入图片描述

# 深拷贝
import copy
dict_2 = {'key1': 'val1', 'key2': 'val2','key3':[1,2,3,4]}
new_dict2=copy.deepcopy(dict_2)
print('老字典:',dict_2,id(dict_2))
print('新字典:',new_dict2,id(new_dict2))
dict_2['key3'].append('test')
print('老字典:',dict_2,id(dict_2))
print('新字典:',new_dict2,id(new_dict2))
print('='*50)

#浅拷贝
dict_1 = {'key1': 'val1', 'key2': 'val2','key3':[1,2,3,4]}
print(type(dict_1))
new_dict = dict_1.copy()
print('老字典:',dict_1,id(dict_1))
print('新字典:',new_dict,id(new_dict))
key3_value=dict_1['key3']
key3_value.append('test')
print(key3_value,type(key3_value))
print('老字典2:',dict_1,id(dict_1))
print('新字典2:',new_dict,id(new_dict))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值