Python之字典

字典

前面我们讲到了列表的操作,接下来我们来看一下字典的相关操作:

#key-value
stdinfo = {
    "0001":"sylvain",
    "0002":"jack",
    "0003":"rose",
}
print(stdinfo)  # 字典无序
# 查
print(stdinfo["0001"])  # 根据key值访问value,若key不存在,则报错
print(stdinfo.get("0001"))  # 安全的方法,效果同上,若key不存在,返回None
print("0005" in stdinfo)    # 判断key是否在字典中,返回True或Fals 
# 改
stdinfo["0002"] = "杰克"     # 存在则修改
# 增
stdinfo["0004"] = "hanmeimei"    # 不存在则添加
# 删
del stdinfo["0001"]  # 指定key删除
stdinfo.pop("0002")  # 指定key删除
stdinfo.popitem()   # 随机删除一对键值,因为字典无序
# 其他
stdinfo.values()    # 返回所有值
stdinfo.keys()  # 返回所有键
stdinfo.setdefault("0003","wutenglan")  #key存在则返回value,不存在则增加

dica = {
    "0003": "hahaha",
    1: 1,
    2: 2,
}
stdinfo.update(dica)    # 合并字典,若已存在则覆盖,不存在则增加
print(stdinfo.items())  # 将字典转化为列表,每队键值为一个元组
dicb = dict.fromkeys([1,2,3])   # 初始化一个字典,键值为列表,value为None
dicc = dict.fromkeys([
    1,2,3],"test")   # 初始化一个字典,键值为列表,value都为test
# 这里有一个坑,当value初始化为可变对象时,如列表,修改任何一个value,其他的value也改了
dicd = dict.fromkeys([1,2,3],["hello","world"])
dicd[1][1] = "China"
print(dicd)
print(stdinfo)

上述用fromkeys来初始化一个字典且value为可变对象时,修改任何一个value,对应的所有value值都修改了,这个原理同浅拷贝的原理是一直的,有兴趣的朋友可以看下篇文章中关于深浅拷贝的讲解。

下面我们来看一下字典的嵌套:

# 多层字典嵌套
bookinfo = {
    "0001": {"乌合之众": ["古斯塔夫·勒庞","一般"]},
    "0002": {"娱乐至死": ["尼尔·波兹曼","很好看"]},
}
# 字典嵌套字典嵌套列表
bookinfo["0001"]["乌合之众"][1] = "不好看"
print(bookinfo)

好了,到这里字典就讲解完了,欢迎各位大佬指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值