四、查询
1.dic[key]:可以通过key来索引查询字典的元素,若键不存在,则会抛出KeyError异常。
d = {'age':27, 'name':'liu', 'sex':'male'} print(d["age"]) # 结果:27 print(d["score"]) # 结果:KeyError: 'score',报错了
2.get(key)方法:不会抛出异常,不存在则返回None,也可以设置默认返回值。
d = {'age':27, 'name':'liu', 'sex':'male'} print(d.get('name')) # 结果:liu print(d.get('addr')) # 结果:None print(d.get('addr', '河南')) # 结果:河南
3.与第二种类似,区别在于setdefault方法会更新字典。
d = {'age':27, 'name':'liu', 'sex':'male'} print(d.setdefault('addr')) # 结果:None,此时字典已经更新了,addr值为None。 print(d.setdefault('addr', '河南')) # 结果:None,如果没有第二行,此时返回:河南
五、for 循环遍历打印字典
# -*- coding:utf-8 -*- dic = {"name":"jack", "age":27, "score":100} # 循环打印 key for k in dic: print(k) # 结果:name age score for k in dic.keys(): print(k) # 结果:name age score # 循环打印 values for v in dic.values(): print(v) # jack 27 100 # 循环打印 key + values for t in dic.items(): print(t) # 结果:('name', 'jack') ('age', 27) ('score', 100) for k, v in dic.items(): print(k, v) # 结果:k是键,v是值 for k in dic: print(k, dic[k])
判断一个对象是否为字典,可以使用isinstance方法
d = {"name":"liu", "age":27} print(isinstance(d, dict)) # 如果是字典,返回True,否则返回False print("{0} is {1}".format(d, isinstance(d, dict)))
其它数据类型转成字典
arr1 = ['jack', 'rose', 'marry'] arr2 = [68, 85, 66] dict1 = dict(zip(arr1, arr2)) print(dict1) # {'rose': 85, 'marry': 66, 'jack': 68} dict2 = dict((('a',2), ('b',4))) print(dict2) # {'a': 2, 'b': 4} dict3 = dict((['a',2], ['b',4])) print(dict3) # {'a': 2, 'b': 4} dict4 = dict([('a',2), ('b',4)]) print(dict4) # {'a': 2, 'b': 4} dict5 = dict([['a',2], ['b',4]]) print(dict5) # {'a': 2, 'b': 4}