关于字典

Posted andy-lus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于字典相关的知识,希望对你有一定的参考价值。

一、字典(dict)的简介

  Python中唯一的一个映射类型,由{}括起来的键值对组成,在dict中,key是唯一的,是不可改变的

  已知可哈希(不可变)数据类型:int,str,tuple,bool

dic = {123: 456, True: 999, "id": 1, "name": sylar, "age": 18, "stu": [帅哥, 美女], (1, 2, 3): 麻花藤}
print(dic[123])        #int\str\tuple\bool这些数据类型可哈希,可以作为key

  不可哈希(可变)数据类型:list,dict,set

dic={[122.222]:"这是不行的",{1,2}:"这也是不行的"}#list、dict、set为不可哈希的数据类型,不可以作为key

  dict保存的数据不是按照初始输入的顺序进行保存的,是根据哈希表进行保存,而哈希表不是连续的, 所以不能进行切片操作,只能通过key来获取dict中的数据

二、字典的增删改查以及其他操作

  1、增加,在字典中增加键值对。

dic={}
dic["name"]="zhangsan"
dic["age"]="13"
print(dic)            #对一个空字典进行增加



dic={}
dic.setdefault("wangba")     #如果dic中没有这个key键,可以通过setdefault进行默认设置操作
dic.setdefult("wangba":"dan")        #如果dic中有这个key键,则setdefault则不起作用
print(dic)            #输出的结果就是{"wangba":None}

  2、删除

dic = {123: 456, True: 999, "id": 1, "name": sylar, "age": 18, "stu": [帅哥, 美女], (1, 2, 3): 麻花藤}
dic1=dic.pop(123)             # 删除dic中键为“123”的键值对,   
print(dic)
print(dic1)                        #使用pop函数可返回被删除的值


dic = {123: 456, True: 999, "id": 1, "name": sylar, "age": 18, "stu": [帅哥, 美女], (1, 2, 3): 麻花藤}
del dic[123]                 
print(dic)                   #使用del不可返回值
dic = {123: 456, True: 999, "id": 1, "name": sylar, "age": 18, "stu": [帅哥, 美女], (1, 2, 3): 麻花藤}
for k,l in dic.popitem()
print(k)              #返回k的值
print(l)              #返回l的值
print(dic) #随机删除


dic.clear()          #清空字典中的所有内容,

  3、修改

dic = {"id": 123, "name": sylar, "age": 18}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1)   # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
print(dic)          #dic更新后的键值对  
print(dic1)         #dic2的内容不变    

  4、查,只能通过查询键的方式查询该键所对应的值

dic = {"id": 123, "name": sylar, "age": 18}
print(dic.get("id"))            #返回键为id所对应的值
print(dic.get("123"))        #查询字典dic中没有的键得到的是空即None   
print(dic.get("id","age"))   #查询多个键时,默认查询第一个

  5、其他操作

#输出dict中所有的key
dic = {"id": 123, "name": sylar, "age": 18}
print(dic.key())                #输出dict_keys([‘id‘, ‘name‘, ‘age‘])


#持续输出dic中的所有key
for key in dic.key()
    print(key)                #输出id,name,age

#value的操作与key相同

dic={"朱元璋":"皇帝","朱标":"太子","徐达":"最强统帅","常遇春":"最强先锋"}
for k,v in dic.items():
    print(k)
    print(v)                #输出dic中所有元素

  6、解构:仅作简单了解

a, b = 1, 2
print(a, b)解构需要注意数量的匹配

三、字典的嵌套

dic1 = {
"name": "A",
"age": 18,
"wife": {
"name": B,
"age": 28
},
"children": [第一个毛孩子, 第二个毛孩子],
"desc": C
}
#获取wife的name
print(dic1.get("wife").get("name"))
#获取children的值
print(dic1.get("children"))
#获取键为children的值第二个元素
print(dic1.get("children")[1])

 

  

 

以上是关于关于字典的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

关于代码片段的时间复杂度

关于片段生命周期

关于js----------------分享前端开发常用代码片段