关于字典
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])
以上是关于关于字典的主要内容,如果未能解决你的问题,请参考以下文章