python-dict方法

dict是属于mapping类型的,使用的方法就是直接定义一个花括号 { } 。

在下面的代码中,列举了dict的一些常用的方法。

  • 这里涉及到浅拷贝和深拷贝的知识,因为python的内部是用c写的,所以原理也是相似。当使用浅拷贝时,新的对象的更改会带动,被拷贝的对象。原因:浅拷贝是将新的一根指针指向原有的内存块,并没有开辟新的内存块,因此会有变化。解决方法就是使用 import copy的方法 copy.deepcopy(xxx对象)
"""
@Time    : 2021/5/11 22:03
@Author  : sailorlee(lizeyi)
@FileName: dict_abc.py
@Software: PyCharm
"""
from collections.abc import Mapping,MutableMapping
# dict属于mapping类型

a = {}
# a 并没有继承mutablemapping  只是实现了一些魔法函数
print(isinstance(a,MutableMapping))

# dict常用的方法,底层使用c语言写的
a = {"sailorlee":{"company":"runtrend"},
     "sailorlee2":{"company":"runtessdd"}
     }
# a.clear()
# pass

# 浅拷贝
new_dict = a.copy()
new_dict["sailorlee"]["company"] = "imooc"
pass

# 深拷贝
import copy
new_dict = copy.deepcopy(a)
new_dict["sailorlee"]["company"] = "imooc"

formkeys方法

# formkeys
new_list = ["bobby1","bobby2","sailor"]
new_dict = dict.fromkeys(new_list,{"company":"imooc"})
pass

get方法如果有值的画就直接拿出来,没有就返回空的dict

# get
value = new_dict.get("bobby",{})

item方法 ,适用于循环迭代

# item
for key,value in new_dict.items():
    print(key,value)

设置dict内容,并且把新的imooc的内容返回给default_value

# setdefault
default_value = new_dict.setdefault("sailor","imooc")

update赋值的方式很多种 “bobby”:“imooc” ,update(((“bobby”,“imooc”),(“bobby3”,“imooc2”) ))

# update方法  "bobby":"imooc" update((("bobby","imooc"),("bobby3","imooc2") ))
a.update(bobby = "imooc",bobby3 = "imooc2")
pass

每天学习python1小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值