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

Day2-Python基础2---列表元组操作

Day2-Python基础2---集合和文件操作

Python学习笔记-Day2-Python基础之元祖操作

Python学习笔记-Day2-Python基础之元组操作

Python学习笔记-Day2-Python基础之字符串操作22222222222222222222222222222222

Day2-Python基础2---浅copy深copy的差别