- 字典的定义:dict()
- 修改字典的数值:info["stu"]
- 修改的另外一个方法update:
- del info,删除整个字典
- del info["stu1101"],删除某个key
- 如果你想随机删除一个key,那么可以用popitem(),随机删除一个
- 查找的几个方法:
- info["stu"]查找的时候这个key必须存在,如果不存在就会报错
- 所以除非你确认key存在,否则用如下的方法:
- 用get的方法,温和的多。如果找不到key,会返回None:
- 用in判断key值是否存在这个字典里,如果存在就取值,如果不在就创建一个key
- 不存在,返回false:
- 打印字典所有的值,注意这里的值不包括key:dic.values()
- 打印字典所有的key:dic.keys()
- setdefault("taiwan",{"www.baidu.com":[1,2]}),setdefault相当于到字典找这个key,如果可以找到那么返回这个值,如果找不到这个key,那么创建一个这个key以及值。
- info.items()作用是把字典转换为列表,其中列表的值为元祖,第一个为key,第二个为值
- info.fromkeys([6,7,8])创建一个新的字典,每个key是列表里的值。 初始化字典
- 字典的循环:只打印key:for i in dic:print(i)
- 打印key+值,for i in dic:print(i,dic[i])
字典的定义:dict()
字典是无序的,因为他没有下标,所以他的数值是随机的。见下图:打印出来1102.1103.1101
所以取值的时候,是用key来取值的:
修改字典的数值:
如果你赋值的时候,这个key不存在,那么就相当于给字典增加了一条:
修改的另外一个方法update:
首先定义两个字典:
然后将字典b当参数传给字典info,结果如下:
就是相当于把两个字典合并,如果key一样,那么就替换值,如果key不一样,那么就在字典新增加这个key以及值。
删除的方法
del info,删除整个字典
del info["stu1101"],删除某个key
还有一个删除的方法info.pop("stu1101"),删除指定的key
如果你想随机删除一个key,那么可以用popitem(),随机删除一个
查找的几个方法:
查找的时候这个key必须存在,如果不存在就会报错
所以除非你确认key存在,否则用如下的方法:
用get的方法,温和的多。如果找不到key,会返回None:
如果存在key
判断key值是否存在这个字典里,如果存在就取值,如果不在就创建一个key
不存在,返回false:
存在返回True
如果在python2里,写法是这样的:请注意:
多级字典嵌套及操作:
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
av_catalog["大陆"]["1024"][1] = "可以在国内做镜像"
av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]})
print(av_catalog)
打印字典所有的值,注意这里的值不包括key:
打印字典所有的key:
setdefault("taiwan",{"www.baidu.com":[1,2]})
setdefault相当于到字典找这个key,如果可以找到那么返回这个值,如果找不到这个key,那么创建一个这个key以及值。
info.items()作用是把字典转换为列表,其中列表的值为元祖,第一个为key,第二个为值
info.fromkeys([6,7,8])创建一个新的字典,每个key是列表里的值。 初始化字典
这边有一个坑,请注意:修改其中一个值,那么所有的值都修改了。
字典的循环:
只打印key:
打印key+值
还有一种方法,打印key+值:因为items()返回的是key+值的元祖+列表,见前面:
效率上来说,第一个方法比第二个方法更快更好。第二个还多了一个字典转列表的过程: