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