一、字典结构

{key:valu}

注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据。

dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅
哥', '美⼥女女'], (1, 2, 3): '麻花藤'}
print(dic[123])
print(dic[True])
print(dic['id'])
print(dic['stu'])
print(dic[(1, 2, 3)])
# 不不合法
# dic = {[1, 2, 3]: '周杰伦'} # list是可变的. 不不能作为key
# dic = {{1: 2}: "哈哈哈"} # dict是可变的. 不不能作为key
dic = {{1, 2, 3}: '呵呵呵'} # set是可变的, 不不能作为key

二、字典的操作

1.增

dic = {}
dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增一个key-value的组
合进dict
dic['age'] = 18
print(dic)
# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
dic.setdefault('李嘉诚') # 也可以往⾥里里⾯面设置值.
dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了了. 那么setdefault将不会起作用
print(dic)

2.删

ret = dic.pop("jay")
print(ret)
del dic["jay"]
print(dic)
# 随机删除.
ret = dic.popitem()
# 清空字典中的所有内容
dic.clear()

3.改

dic = {"id": 123, "name": 'sylar', "age": 18}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
print(dic)
print(dic1)

4.其他操作

dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐比"}
print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不不⽤用管它是什么.当成list来用就⾏
for key in dic.keys():
print(key)
print(dic.values()) # dict_values([123, 'sylar', 18, '科⽐比']) ⼀一样. 也当
list来⽤用
for value in dic.values():
  print(value)
print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',18), ('ok', '科⽐比')]) 这个东⻄西也是list. 只不过list中装的是tuple
for key, value in dic.items(): # ?? 这个是解构
print(key, value)
# 解构
a, b = 1, 2
print(a, b)
(c, d) = 3, 4
print(c, d)
e, f = [1, 2, 3] # 解构的时候注意数量量必须匹配
print(e, f)

最新文章

  1. 清空表数据 mysql让主键从1开始
  2. C#------如何判断输入的是否为纯数字
  3. FP - growth 发现频繁项集
  4. JavaScript事件委托的技术原理
  5. 【状态DP】 HDU 1074 Doing Homework
  6. RBAC打造通用WEB权限
  7. JAVA编程入门
  8. @RequestParam加与不加的区别
  9. Windows系统中监控文件复制操作的几种方式
  10. C# 语句 分支语句 switch----case----.
  11. u-boot移植(四)---修改前工作:代码流程分析3---代码重定位
  12. CH6201 走廊泼水节【最小生成树】
  13. 前端 HTML body标签相关内容 常用标签 表单标签 form里面的 label标签介绍
  14. 20169207《Linux内核原理与分析》第十周作业
  15. iphone 开发中使用zbar时遇到的几个典型问题解决方法。
  16. (转)使用异步Python 3.6和Redis编写快速应用程序
  17. vs2010开发环境恢复--(mysql,数据文件可直接拷贝,并可用navicat直接管理)
  18. SOA和微服务到底是什么关系
  19. nodejs 接收上传的图片
  20. 用 Visual Studio 2012 调试你的ASP程序

热门文章

  1. Ubuntu中安装deb包程序
  2. python3+paramiko实现ssh客户端
  3. jsp 内置对象(五)
  4. Oracle如何解决日期格式“01-3月 -18”的显示问题(3种处理方式)
  5. Guidelines for Writing a Good NIPS Paper
  6. pycharm(Tip of Day)
  7. Vue 全家桶
  8. 解决Tomcat v6.0 Server at localhost was unable to start within 45 seconds
  9. day36 数据库表操作 数据类型 完整性约束
  10. java 实现简单的顺序队列