Day2-Python基础2---字典操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day2-Python基础2---字典操作相关的知识,希望对你有一定的参考价值。
一、字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
1、基本语法
1 >>> info = { 2 ‘stu1101‘: "Ma Qing", 3 ‘stu1102‘: "Pei Lin", 4 ‘stu1103‘: "Wang Chuan", 5 ‘stu1104‘: "Cai Jin", 6 } 7 >>> print(info) 8 {‘stu1104‘: ‘Cai Jin‘, ‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘, ‘stu1101‘: ‘Ma Qing‘}
2、字典的特性:
-
dict是无序的
-
key必须是唯一的,so 天生去重
3、字典增加
1 >>> info["stu1105"] = "蔡文华" 2 >>> print(info) 3 {‘stu1104‘: ‘Cai Jin‘, ‘stu1105‘: ‘蔡文华‘, ‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘, ‘stu1101‘: ‘Ma Qing‘}
4、修改
1 >>> info["stu1101"] = "马青" 2 >>> print(info) 3 {‘stu1104‘: ‘Cai Jin‘, ‘stu1105‘: ‘蔡文华‘, ‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘, ‘stu1101‘: ‘马青‘}
5、删除
1 #方法一: 2 >>> info.pop("stu1101") 3 ‘马青‘ 4 >>> print(info) 5 {‘stu1104‘: ‘Cai Jin‘, ‘stu1105‘: ‘蔡文华‘, ‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘} 6 #方法二: 7 >>> del info["stu1105"] 8 >>> print(info) 9 {‘stu1104‘: ‘Cai Jin‘, ‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘} 10 #随机删除 11 >>> info.popitem() 12 (‘stu1104‘, ‘Cai Jin‘) 13 >>> print(info) 14 {‘stu1103‘: ‘Wang Chuan‘, ‘stu1102‘: ‘Pei Lin‘}
6、查找
>>> info = { ‘stu1101‘: "Ma Qing", ‘stu1102‘: "Pei Lin", ‘stu1103‘: "Wang Chuan", ‘stu1104‘: "Cai Jin", } #如果差绕的key在字典中不存在,则程序报错 >>> info["stu1102"] ‘Pei Lin‘ #推荐用get判断,无论字典中是否有要查找的key,python不会报错 >>> info.get("stu1103") ‘Wang Chuan‘ >>> info.get("stu1105")
判断字典中是否存在某个值
1 print("stu1103" in info) #如果不存在报错!
7、多级字典嵌套
1 >>> av_catalog = { 2 "欧美":{ 3 "www.youporn.com": ["很多免费的,世界最大的","质量一般"], 4 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], 5 "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], 6 "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] 7 }, 8 "日韩":{ 9 "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] 10 }, 11 "大陆":{ 12 "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] 13 } 14 } 15 >>> av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来" 16 print(av_catalog["大陆"]["1024"]) 17 [‘全部免费,真好,好人一生平安‘, ‘服务器在国外,慢,可以用爬虫爬下来‘]
8、其他用法
1)values 将字典中的所有values值,生成一个列表
1 av_catalog.values() 2 dict_values([{‘x-art.com‘: [‘质量很高,真的很高‘, ‘全部收费,屌比请绕过‘], ‘www.youporn.com‘: [‘很多免费的,世界最大的‘, ‘质量一般‘], ‘letmedothistoyou.com‘: [‘多是自拍,高质量图片很多‘, ‘资源不多,更新慢‘], ‘www.pornhub.com‘: [‘很多免费的,也很大‘, ‘质量比yourporn高点‘]}, {‘tokyo-hot‘: [‘质量怎样不清楚,个人已经不喜欢日韩范了‘, ‘听说是收费的‘]}, {‘1024‘: [‘全部免费,真好,好人一生平安‘, ‘服务器在国外,慢,可以用爬虫爬下来‘]}])
2)keys将字典中的所有keys值,生成一个列表
1 >>> av_catalog.keys() 2 dict_keys([‘欧美‘, ‘日韩‘, ‘大陆‘])
3)setdefault(k,v)
setdefault()表示去取字典中的key,如果取不到,则设置新值,相反如果取到,则返回原有默认值。
4)update更新字典。如果原字典已有数据已新字典内容为准
1 info = { 2 ‘stu1101‘: "Ma Qing", 3 ‘stu1102‘: "Pei Lin", 4 ‘stu1103‘: "Wang Chuan", 5 ‘stu1104‘: "Cai Jin", 6 } 7 >>> info2 = {1:2,3:4,"stu1103":"王川"} 8 9 >>> info.update(info2) 10 >>> info 11 {‘stu1103‘: ‘王川‘, 1: 2, ‘stu1101‘: ‘Ma Qing‘, ‘stu1104‘: ‘Cai Jin‘, 3: 4, ‘stu1102‘: ‘Pei Lin‘}
5)items 将字典转化为列表
1 >>> info.items() 2 dict_items([(‘stu1103‘, ‘王川‘), (1, 2), (‘stu1101‘, ‘Ma Qing‘), (‘stu1104‘, ‘Cai Jin‘), (3, 4), (‘stu1102‘, ‘Pei Lin‘)])
6)#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
1 >>> info3 = dict.fromkeys([6,7,8],"test") 2 >>> print(info3) 3 {8: ‘test‘, 6: ‘test‘, 7: ‘test‘}
1 c = dict.fromkeys([6,7,8],[1,{"name":"maqing"},666]) 2 >>> print(c) 3 {8: [1, {‘name‘: ‘maqing‘}, 666], 6: [1, {‘name‘: ‘maqing‘}, 666], 7: [1, {‘name‘: ‘maqing‘}, 666]} 4 >>> c[7][1]["name"] = "Peilin" 5 >>> print(c) 6 {8: [1, {‘name‘: ‘Peilin‘}, 666], 6: [1, {‘name‘: ‘Peilin‘}, 666], 7: [1, {‘name‘: ‘Peilin‘}, 666]}
7)dict的循环
1 #输出字典 2 for i in info : 3 print(i,info[i]) 4 #方法二,先把字典转化为列表,然后输出列表 5 for k,v in info.items(): 6 print(k,v)
以上是关于Day2-Python基础2---字典操作的主要内容,如果未能解决你的问题,请参考以下文章
Python学习笔记-Day2-Python基础之字符串操作22222222222222222222222222222222