标签:el Python value dic key 基本操作 字典
一.字典的定义
字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯⼀的. 在保存的时候, 根据key来计算出⼀个内存地址. 然后将key-value保存在这个地址中.这种算法被称为hash算法, 所以, 在dict中存储的key-value中的key必须是可hash的,可哈希就意味着不可变.
语法
{key1: value1, key2: value2....}
注意:key必须是不可变的(可哈希的),value可以保存任意类型的数据
特点
-
无序:python3.6版本以上默认了咱们定义的顺序,python3.5以下是随机显示的.
-
可变的
-
可以存储大量数据,比列表还要大
-
能够将数据进行关联,比较消耗内存
二.字典的相关操作
新增
dic = {"a":"b","b":"c"}
dic["c"] = ["d"] # 给出key和value添加,如果key已存在则会替换value
dic.setdefault("c","d") # 先去字典中查看key存不存在,如果key存在会返回key所对应的value(可用于查找),如果key不存在就添加key和value
删除
注意:字典没有remove
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dic = {"a":"b","b":"c"}
dic.pop("a") # 指定key弹出,有返回值,返回删除的value
dic.popitem() # 随机弹出,有返回值,返回删除的value
del dic["a"] # 指定key删除
del dic # 删除整个字典
dic.clear() # 清空字典,得到空字典
修改
dic[key] = "新的值" # 指定key修改,key不存在就新增
dic.update({1:2,'a':'a1'}) # 用字典更新字典,存在的替换,没有的新增,原来有这次没有的不变
查询
查询只能通过key获取value,不能通过value获取key.
print(dic[key]) # 指定key查找value,key不存在会报错
print(dic.get(key,"返回")) # 指定key查找value,key不存在会返回给出的返回值,默认None
其他相关操作
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
dic.keys() # 得到key的高仿列表,但不是列表,不支持索引,支持迭代遍历
dic.values() # 得到value的高仿列表
dic.items() # 得到由(key,value)成对组成的元组组成的列表
for el in dic: # 遍历列表得到key
for el in dic.keys():
for el in dic.values():
for el in dic.items(): => (key,value)
for k,v in dic.items(): => 得到key和value
for el in enumerate(dic,start): # 给你要迭代的对象加一个序号start默认是0,枚举
字典的嵌套
dic = {
101:{1:['周杰伦','林俊杰'],2:{'汪峰':['国际章','前妻一','前妻二']}}
102:{1:['李小龙','吴京','李连杰'],2:{'谢霆锋':['张柏芝','王菲']},3:['大象','奇奇']}
103:{1:['郭美美','干爹'],2:{'王宝强':['马蓉','宋哲']}}
}
print(dic["102"][3][0]) => "大象"
# 逐层用key查找
结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!
标签:el,Python,value,dic,key,基本操作,字典 来源: https://blog.csdn.net/qdPython/article/details/121052133
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。