四、查询

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}

最新文章

  1. oracle补丁升级
  2. Robotium ant 报错Unable to find instrumentation info for: ComponentInfo{project/android.test.InstrumentationTestRunner}
  3. [Tommas] dateadd() 函数用法
  4. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 前台页面
  5. 异常-----freemarker.core.ParseException: Encountered "string"
  6. Dubbo 源码分析 - 集群容错之 LoadBalance
  7. Day6 Pyhton基础之文件操作(五)
  8. re正则匹配
  9. Spark调优_性能调优(一)
  10. 每日linux命令学习-lsattr和chattr
  11. Macaca 基础原理浅析
  12. 神经网络 之 DNN(深度神经网络) 介绍
  13. (转)live555学习笔记-UsageEnvironment和TaskScheduler
  14. Day1 MySql安装和基本操作
  15. vs2012调试时,抛出异常的等待时间很慢,原来是QQ电脑管家搞的鬼。
  16. Hibernate之Hibernate环境搭建
  17. GIT 恢复已删除的提交
  18. 在通知栏上玩游戏,Steve iOS 游戏实现思路
  19. datatable填装List代替for循环
  20. bzoj1968: [Ahoi2005]COMMON 约数研究(数论)

热门文章

  1. python+requests 请求响应文本出错返回“登录超时”
  2. ci框架读取上传的excel文件数据
  3. Keepalive+双主
  4. Spring Boot源码分析-配置文件加载原理
  5. mysql45讲
  6. ArrayList,LinkedList,Vector区别.TreeSet,TreeSet,LinkedHashSet区别
  7. Android获取网络时间的方法
  8. C#面向对象15 多态
  9. SVN客户端(TortoiseSVN)保存密码自动登录后,如何切换使用其它帐户登录方法
  10. js之语句——案例