【主要内容】

1. dict
用大括号{} 括起来. 内部使用key:value的形式来保存数据
{'jay':'周杰伦', "jj":'林俊杰'}
注意:字典的key必须是可哈希的. 不可变的, value 没有限制
不是按照我们保存的顺序保存的, 无序的
2. 增删改查
1. dict[不存在的key] = value, setdefault()
2. pop(key). del dict[key]. popitem(), clear()
3. dict[存在的key] = 新值, d1.update(d2) 把d2的k-v更新到d1中
4. get(key, 默认值), setdefault(), dict[key]
3. 字典的常用方法
1. keys() 返回所有字典的key的集合(高仿列表)
2. values() 返回所有的value的集合
3. items() 返回键值对. 元组
解构:
a, b = (1, 2) 4. 字典的嵌套

【代码】

1、字典的常用操作

 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
# print(dic.keys()) # 拿到所有的key, 返回key的集合. 像是列表. 但是不是列表
#
# for key in dic.keys(): # 可以进行迭代循环
# print(key) # print(dic.values())
# for value in dic.values():
# print(value)
# dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
# print(dic.items()) # 拿到键值对
# # 遍历dict
# for k, v in dic.items():
# print(k , v) # for k, v in dic.items():
# # = item # (key, value)
# # print(item) # (key, value)
# print(k,v) # 解构 . 解包
# a, b = (1, 2)
# print(a)
# print(b) # a, b, c = ("马化腾", "马云", "马良")
# print(b) # a, b = [1, 2]
# print(a, b)

2、字典的嵌套

 dic = {
"name":"汪峰",
"age": 58,
"wife":{
"name":"国际章",
"salary": 180000,
"age": 37
},
"children":[
{"name":"老大", "age": 18},
{"name":"老二", "age": 118}
]
}
print(dic["children"][1]["age"]) print(dic["wife"]['salary'])

3、字典的for循环

 dic = {1: 'a', 2:'b', 3:'c'}
for a in dic: # 直接循环字典.拿到的是key print(a)
print(dic[a])

4、作业与练习

 '''
# 把班级学生数学考试成绩录入到一个列表中,并求平均值,要求录入的时候要带着学生姓名和成绩,例如:张三_44
lst=[]
while 1:
stu = input("请输入学生姓名和成绩(姓名_成绩),输入Q或q退出录入:")
if stu.upper() == 'Q':
break
lst.append(stu)
sum=0
for el in lst:
li=el.split("_")
sum+=int(li[1])
print(sum/len(lst)) #*****************本次内容练习**********************
dic={"及时雨":"宋江","易大师":"剑圣","维恩":"暗影猎手"}
for k,v in dic.items():
print(k,v)
'''
dic={
"name":"汪峰",
"age":58,
"wife":{
"name":"国际章",
"salay":18000,
"age":37
},
"children":[
{"name":"老大","age":18} ,
{"name":"老二","age":8}
]
}
print(dic["children"][1]["age"])

最新文章

  1. winserver2008 DNS 很详细
  2. PL/0编译器(java version)–Pcode.java
  3. Open vSwitch FAQ (三)
  4. svn: Can't convert string from 'UTF-8' to native encoding 的解决办法
  5. redis的key过期时间
  6. rsyslog kill 测试重发例子
  7. 2014上半年acm总结(1)(入门+校赛)
  8. ajax提交整个form表单
  9. java编译出错信息汇总(更新)
  10. SparkStreaming读取Kakfa数据时发生OffsetOutOfRangeException异常
  11. java基础之关键字static
  12. vuex是什么东西?
  13. php ReflectionClass类遍历类中包含元素的方法
  14. easyUI 创建有复选框的table.datagrid
  15. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能
  16. 关于vmware虚拟机硬件里没有软盘驱动器,而操作系统里还有的解决方法
  17. 获取China大陆IP段的范围
  18. springboot配置文件的配置
  19. java 多线程之:sleep() 方法
  20. html5的文档申明为什么是<!DOCTYPE html>?

热门文章

  1. 微信小程序背景音乐官方实例代码无效问题解决及音乐src获取方法
  2. 1046 划拳 (15 分)C语言
  3. js实现类选择器和name属性选择器
  4. 原生javascript 基础动画原理
  5. 从源码角度来看BeanFactory和ApplicationContext的关系
  6. 【LC_Lesson4】---罗马数字到整数得转换
  7. DP-01背包 (题)
  8. 让现有vue前端项目快速支持多语言 - 用.net core程序快速替换中文为资源Key,咱不干体力活
  9. (树形DP)Strategic game POJ - 1463
  10. 第二阶段冲刺个人任务——six