学习python的第五次作业

目录

1、dict和list中copy方法画图加代码解释

2、dict中扩展字典长度(多种方法)

3、dict中获取所有的key,获取所有的value,获取所有的item

4、dict中通过一个不存在的key去获取值(要求不报错)

5、定义空集合

6、set中,求差集,求合集,求交集(要求在原集合上操作)添加一个元素删除一个元素(使用多种方法)


1、dict和list中copy方法画图加代码解释

直接赋值和copy的区别

  • 直接赋值:其实就是对象的引用(别名)。

    dict_abc = {1: 2.2, b'22': "222"}
    dict_ccc = dict_abc
    print(dict_ccc)
    
  • dict_abc = {1: 2.2, b'22': "222"}
    dict_ccc = dict_abc
    print(dict_ccc)
    print(id(dict_abc))
    print(id(dict_ccc))
    
    
    D:\python\python.exe "D:/python 作业合集/补作业.py"
    {1: 2.2, b'22': '222'}
    2369396703296
    2369396703296
    
    Process finished with exit code 0
    

    浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。

  • dict_abc = {1: 2.2, b'22': "222"}
    dict_ccc = dict.copy(dict_abc)
    print(dict_ccc)
    print(id(dict_abc[1]))
    print(id(dict_ccc[1]))
    
    
    D:\python\python.exe "D:/python 作业合集/补作业.py"
    {1: 2.2, b'22': '222'}
    2417750443632
    2417750443632
    
    Process finished with exit code 0
    

    然而也会出现以下情况

    dict_abc = {1: 2.2, b'22': "222"}
    dict_ccc = dict.copy(dict_abc)
    print(dict_ccc)
    print(id(dict_abc))
    print(id(dict_ccc))
    
    
    D:\python\python.exe "D:/python 作业合集/补作业.py"
    {1: 2.2, b'22': '222'}
    2215213629504
    2215213629696
    
    Process finished with exit code 0
    

    id码并不相同,a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)

  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    dict_data = {1: [1, 2, 3]}
    dict_data2 = copy.deepcopy(dict_data)
    print(dict_data2)
    print(id(dict_data[1]))
    print(id(dict_data2[1]))
    print(id(dict_data))
    print(id(dict_data2))
    dict_data[1][1] = 8
    print(dict_data)
    print(dict_data2)
    
    
    {1: [1, 2, 3]}
    2472985995776
    2472985993344
    2472980210432
    2472984590528
    {1: [1, 8, 3]}
    {1: [1, 2, 3]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值