#1 >>> a = {"1":"2"} >>> type(a) <class 'dict'> #2 >>> s = {"吕布":"傻喜","关羽":"关老弟"} >>> s {'吕布': '傻喜', '关羽': '关老弟'} #3 b = dict(爱情="钱",友情="也需要钱") #4 c = dict(['广东','广州'],('重庆','路痴')) #5 格外增加字典 e = dict({"吕布":"傻喜","关羽":"关老弟"},貂蝉='老婆') #6 f = dict(zip(['a','b','c'],['e','f','g']))
2.修改字典
#使用fromkeys创建一个字典 >>> s = dict.fromkeys("abcd",333) >>> s {'a': 333, 'b': 333, 'c': 333, 'd': 333} #修改 >>> s ["a"] = 999 >>> s {'a': 999, 'b': 333, 'c': 333, 'd': 333} #如果修改的键值是不存在的,会在字典的末尾进行添加上字典 >>> s['e'] = 0 >>> s {'a': 999, 'b': 333, 'c': 333, 'd': 333,'e':0}
2.删除字典的某一个键值,使用pop方法
#1 删除指定的键值 >>> s.pop("e") 0 #2 如果删除的内容不存在,则报错 >>> s.pop("q") Traceback (most recent call last): File "<pyshell#27>", line 1, in <module> s.pop("q") KeyError: 'q' #可以添加上自己的定义的错误信息则不会报错 >>> s.pop("q",'') '暂时没有找到这个键值' #3 删除字典的最后末尾的那一个键值 >>> s.popitem() ('e', 0) #4 使用del方法进行删除指定的键值 del s["e"] #也可以直接删除整一个字典 del s #5 使用clear方法清除字典的全部内容 s.clear()
3.修改字典
#使用fromkeys创建一个字典 >>> s = dict.fromkeys("abcd",333) >>> s {'a': 333, 'b': 333, 'c': 333, 'd': 333} #修改 >>> s ["a"] = 999 >>> s {'a': 999, 'b': 333, 'c': 333, 'd': 333} #如果修改的键值是不存在的,会在字典的末尾进行添加上字典 >>> s['e'] = 0 >>> s {'a': 999, 'b': 333, 'c': 333, 'd': 333,'e':0} #2 #新建一个字典 >>> d = dict.fromkeys("ipconfig") >>> d {'i': None, 'p': None, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None} #2.1 >>> d['i'] = 222 >>> d {'i': 222, 'p': None, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None} #2.2 使用update进行更新字典的键值对 >>> d.update({'p':234}) >>> d {'i': 222, 'p': 234, 'c': None, 'o': None, 'n': None, 'f': None, 'g': None} #2.2.1 >>> d.update(f="33",i="555") >>> d {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
4.查找字典
>>> d {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None} >>> d["i"] '555' #可以使用get方法如果没有找到指定的键也是不会报错的 >>> d.get('t',"没有t") #如果找不到字典则会进行在末尾进行创建一个新的键值匹配,方法setdefault >>> d.setdefault("C","code") 'code'
5.获取键值
>>> keys = d.keys() >>> values = d.values() >>> items = d.items() >>> items dict_items([('i', '555'), ('p', 234), ('c', None), ('o', None), ('n', None), ('f', '33'), ('g', None), ('C', 'code')]) >>> values dict_values(['555', 234, None, None, None, '33', None, 'code']) >>> keys dict_keys(['i', 'p', 'c', 'o', 'n', 'f', 'g', 'C']) #删除键值 >>> d.pop('C') 'code' #查看键 >>> keys dict_keys(['i', 'p', 'c', 'o', 'n', 'f', 'g']) #查看值 >>> values dict_values(['555', 234, None, None, None, '33', None])
6.字典也是支持浅拷贝的
>>> e = d.copy() >>> e {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None} >>> d {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
7.其他用法
#如何获取键值的对数 >>> len(d) 7 #判断键值是否存在字典之中 >>> "i" in d True >>> "c" not in d False #把键转换为列表,并不会影响之前的列表 >>> list(d) ['i', 'p', 'c', 'o', 'n', 'f', 'g'] >>> d {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None} #把值转换成列表 >>> list(d.values()) ['555', 234, None, None, None, '33', None] #迭代器,更加节省内存 >>> e = iter(d) >>> next(e) 'i' >>> next(e) 'p' >>> next(e) 'c' >>> next(e) 'o' #使字典进行值进行反转,但是并不会影响字典本来的值 >>> list(reversed(d.values())) [None, '33', None, None, None, 234, '555'] >>> d {'i': '555', 'p': 234, 'c': None, 'o': None, 'n': None, 'f': '33', 'g': None}
8.字典的嵌套,俗称二维
>>> d = {"吕布":{"语文":22,"数学":33},"曹操":{"语文":232,"数学":333}} >>> d {'吕布': {'语文': 22, '数学': 33}, '曹操': {'语文': 232, '数学': 333}} >>> d["吕布"]['数学'] 33 >>> d = {"吕布":[3,5,3],"曹操":[43,55,22]} >>> d['吕布'][1] 5
9.字典的推导式
# 1 d = {"u":33,'q':44} >>> b = {v:k for k,v in d.items()} >>> b {33: 'u', 44: 'q'} #2 使用推导式找出字母的un编码 >>> d = {x:ord(x) for x in "ujeg"} >>> d {'u': 117, 'j': 106, 'e': 101, 'g': 103} #3 二维?推导式 >>> d = {x:y for x in [1,3,5] for y in [2,4,6]} >>> d {1: 6, 3: 6, 5: 6}