python 8 字典
python 8 字典
一、三目运算符
1)单目运算符:not
2)双目运算符: +、-、*、··· 、>、<、and、or.
即提供两个对象来判断
3)三目运算符
c语言的三目运算符
- 语法:表达式1?表达式2:表达式3 ----判断表达式1的值是否为真,如果为真,整个运算结果就是第2个表达式,如果为假,整个运算结果就是第三个表达式。
python的三目运算符 :if else
语法:表达式2 if 表达式1 else 表达式3------先判断表达式1是否成立,如果为true ,整个运算结果就是第表达式2 的值,如果是false,整个运算结果就是表达式3的值。
score = 90 print('优秀' if score > 85 else '不优秀') ## 优秀
二、字典
1.认识字典
举例:定义一个变量,保存学生的信息
方法1:使用列表
stu1=['明明','19','男','179','78','89','94']
print(stu1[0],stu1[-3])
##运行结果
明明 78
总结:使用列表可以保存学生的信息,但是,当所保存的的数据类型较多时,易不清楚数据是哪些内容。
方法2 :使用字典
stu2{'name':'明','age':29,'gender':'男','height':189,'chinese':89,'math':99,'English':90}
print(stu2['name'],stu2['age'])
##
明明 29
字典的好处就是在保存数据时,可以加个键,对数据进行区分。如果要保存多个意义不同的数据,就用字典
2. 什么是字典
字典的类型:dict
字典定义:字典是容器型数据类型,将{ }作为容器的标准,里面的每个键值对用逗号隔开:{键1:值1,键2:值2,键3:值3,···,}
字典的特点:字典是可变的,无序的;可变即支持增删改操作,无序即不支持下标操作。
class1={'name':'lily','age':'10','height':168} class2={'age':'10','name':'lily','height':168} print(class1==class2) #说明字典是无序的 #True class2['age']=20 print(class2) ## {'age': 20, 'name': 'lily', 'height': 168} #年龄修改为20
字典的元素:键值对
键的要求:a.必须是不可变类型的数据 ,b.必须是唯一的
值的要求:无要求,即任何类型的数据都可以作为值
class1={'name':'lily','age':'10','height':168,[12,90]:'yes'}
print(class1) # #键的类型必须是不可变的数据,否则报错TypeError: unhashable type: 'list'
class2={'name':'lily','age':10,'height':168,'[12,90]':'jsidhv','age':9}
print(class2)
#{'name': 'lily', 'age': 9, 'height': 168, '[12,90]': 'jsidhv'}
3. 空字典
dict1={ }
dict1={} print(type(dict1),len(dict1)) #<class 'dict'> 0
4. 字典的查
1)查单个
查单个:获取字典某一个键对应的值。
写法:字典[键]、字典.get(键)、字典.get(键,默认值)
字典[键]:获取字典中指定键对应的值,如果键不存在,会报错。
字典.get(键):获取字典中指定键对应的值,如果键不存在,不会报错,并会显示None。
字典.get(键,默认值):或取字典中指定键对应的值,如果键不存在,不会报错,会返回默认值。
class1={'name':'lily','age':'10','height':168,'weight':50,'gender':'girl'} print(class1['weight']) print(class1.get('math')) print(class1.get('math',90)) print[class1['math']] ##结果显示 50 None 90 #报错,KeyError: 'math'
2)遍历
有两种遍历方法:
方法1
for x in 字典:
循环体
class1={'name':'lily','age':'10','height':168,'weight':50,'gender':'girl'} for x in class1:print(class[x]) #遍历到的是字典的键 ##结果显示 lily 10 168 50 girl
方法2:
for x,y in items(字典):
print(x,y)
class1={'name':'lily','age':'10','height':168,'weight':50,'gender':'girl'} for x,y in class1.items():print(x,y) ##结果显示 name lily age 10 height 168 weight 50 gender girl
5. 字典的增删改查
1)改:修改键的值
字典[键]=新值 : 将字典中指定键对应的值修改成指定的新值。
class1={'name':'lily','age':'10','height':168,'weight':50,'gender':'girl'} class1['name']='lucy' print(class1) ##结果显示 {'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl'}
2)增
增有两种方法
方法1
- 字典[键]= ‘值’ :如果不存在,就在字典中添加键值对,如果键存在,会修改原来的值。
方法2
字典.setdefault(键,值) :在字典中添加指定的键值对。如果键存在,会保留原来的值(不会修改)
A={'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl'} A['tel']='123456' print(A) ##结果显示 #{'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl', 'tel': '123456'} A.setdefault('tel','2345678') print(A) ##结果显示 {'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl', 'tel': '123456'}
3)删
字典里面有两个删除方法
del 字典(键) :删除字典中指定键的值
字典.pop(键) :取出字典中指定键值对.
A={'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl'} del A['name'] print(A) A.pop('height') print(A) ##结果显示 {'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl'} #删除'name':lucy {'age': '10', 'weight': 50, 'gender': 'girl'} #删除'height':168
6.字典的相关操作
字典中不支持+、-、*、>、<、>=、<=这些运算。
1)in 和 not in
- 键 in 字典:用来判断键字典中是不是存在这个键。
- 键 not in 字典:用来判断键是不是不存在这个字典中
2) 相关函数
len、dict
len( 字典) :获取字典中键值对的数据
dict(数据) : 将指定数据转换成字典
可以转换成字典的要求:
a. 数据本身是一个序列
b.序列中的元素必须有且只有两个元素的小序列
c. 小序列中的第一个元素必须是不可变的类型的数据。
A={'name': 'lucy', 'age': '10', 'height': 168, 'weight': 50, 'gender': 'girl'} print(len(A)) print(dict(['sc','cd','kl'])) B=dict([('name','Tom'),('age',2),('height',12)]) print(B) ##运行结果 {'s': 'c', 'c': 'd', 'k': 'l'} {'name': 'Tom', 'age': 2, 'height': 12}
相关方法:字典.xxx( )
1)字典.clear( ) : 清空字典
2)字典.copy( ) :复制产生一个一模一样的字典
3)字典.key( ): 获取所有的键,返回一个序列
字典.value( ) : 获取字典所有的值,返回一个序列
字典.item( ) :将字典转成序列,并且将每一个键值对转换成一个元组。
4)字典1.update(字典2 ) :将字典2中所有键值对都添加到字典1中。
day8 字典作业!
定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
A={'name':'张三','age':23,'math':'90','tel':'123456789','gender':'boy'} print(A) ## {'name': '张三', 'age': 23, 'math': '90', 'tel': '123456789', 'gender': 'boy'}
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
统计不及格学生的个数
打印不及格未成年学生的名字和对应的成绩
求所有男生的平均年龄
打印手机尾号是8的学生的名字
打印最高分和对应的学生的名字
删除性别不明的所有学生
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
A=[{'name':'张三','age':23,'music':'90','tel':'1234567896','gender':'boy'}, {'name':'李四','age':19,'music':'56','tel':'2323433558','gender':'boy'}, {'name':'花花','age':18,'music':'99','tel':'2344566668','gender':'girl'}, {'name':'亮亮','age':40,'music':'45','tel':'8963576447','gender':'boy'}, {'name':'颖颖','age':19,'music':'70','tel':'2389479058','gender':'N'}, {'name':'乐乐','age':30,'music':'83','tel':'1234567892','gender':'boy'}] count = 0 1.统计不及格学生的个数 #方法1 for x in A:if int(x['music']) < 60:count += 1 print(count) #方法2 B=[ x['music'] for x in A if int(x['music'])<60] print(len(B)) 2.打印不及格未成年学生的名字和对应的成绩 for x in A:if int(x['music']) < 60:print(x['name'],x['music']) ##结果显示 李四 56 亮亮 45 3.求所有男生的平均年龄 count = 0 sum_age = 0 for x in A:if x['gender']=='boy':sum_age +=int(x['age'])count += 1 print((sum_age)/count) ## 结果显示 28.0 4.打印手机尾号是8的学生的名字 for z in A:if int(z['tel']) % 10 == 8:print(z['name']) ##结果显示 李四 花花 颖颖 5.打印最高分和对应的学生的名字 a=int(A[1]['music']) for x in range(len(A)):if int(x['music'])> aa=int(x['music']) print(x['music'],x['name'])6.删除性别不明的所有学生 B = [] for x in A:if x['gender'] == 'boy' or x['gender'] == 'girl':B.append(x) print(B) ##结果显示 [{'name': '张三', 'age': 23, 'music': '90', 'tel': '1234567896', 'gender': 'boy'}, {'name': '李四', 'age': 19, 'music': '56', 'tel': '2323433558', 'gender': 'boy'}, {'name': '花花', 'age': 18, 'music': '99', 'tel': '2344566668', 'gender': 'girl'}, {'name': '亮亮', 'age': 40, 'music': '45', 'tel': '8963576447', 'gender': 'boy'}, {'name': '乐乐', 'age': 30, 'music': '83', 'tel': '1234567892', 'gender': 'boy'}] 7.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃) A=[{'name':'张三','age':23,'music':'90','tel':'1234567896','gender':'boy'}, {'name':'李四','age':19,'music':'56','tel':'2323433558','gender':'boy'}, {'name':'花花','age':18,'music':'99','tel':'2344566668','gender':'girl'}, {'name':'亮亮','age':40,'music':'45','tel':'8963576447','gender':'boy'}, {'name':'颖颖','age':19,'music':'70','tel':'2389479058','gender':'N'}, {'name':'乐乐','age':30,'music':'83','tel':'1234567892','gender':'boy'}] for x,y in enumerate(A):if y['music']
定义一个变量保存一个班级的信息,班级信息中包括:班级名称、教室位置、班主任信息、讲师信息、班级所有的学生(根据实际情况确定数据类型和具体信息)
class2204={'class_name':'2204','location':'fifteen','class_teacher':{'name':'Jing','tel':'12345678','gender':'girl'},'lecturer':{'name':'Ting','age':18,'address':'pidu'},'stu':{'stu1':{'name':'AA','tel':'76543222','gender':'girl'},'stu2':{'name':'bb','tel':'76543345','gender':'boy'},'stu3':{'name':'CC','tel':'5432234','gender':'girl'},'stu4':{'name':'DD','tel':'1245667','gender':'boy'},}
已知一个列表保存了多个狗对应的字典:
dogs = [{'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'},{'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2},{'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'},{'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1},{'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2},{'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'} ]
利用列表推导式获取所有狗的品种
[‘银狐’, ‘法斗’, ‘土狗’, ‘哈士奇’, ‘银狐’, ‘土狗’]
dogs = [{'name':'贝贝','color':'白色','breed':'银狐','age':3,'gender':'母'},{'name':'花花','color':'灰色','breed':'法斗','age':2},{'name':'财财','color':'黑色','breed':'土狗','age':5,'gender':'公'},{'name':'包子','color':'黄色','breed':'哈士奇','age':1},{'name':'可乐','color': '白色','breed':'银狐','age':2},{'name':'旺财','color':'黄色','breed':'土狗','age':2,'gender':'母'}] B=[x['breed'] for x in dogs] print(B) ##结果显示 ['银狐', '法斗', '土狗', '哈士奇', '银狐', '土狗']
利用列表推导式获取所有白色狗的名字
[‘贝贝’, ‘可乐’]
dogs = [{'name':'贝贝','color':'白色','breed':'银狐','age':3,'gender':'母'},{'name':'花花','color':'灰色','breed':'法斗','age':2},{'name':'财财','color':'黑色','breed':'土狗','age':5,'gender':'公'},{'name':'包子','color':'黄色','breed':'哈士奇','age':1},{'name':'可乐','color': '白色','breed':'银狐','age':2},{'name':'旺财','color':'黄色','breed':'土狗','age':2,'gender':'母'}] C=[x['name'] for x in dogs if x['color'] == '白色'] print(C) ##结果显示 ['贝贝', '可乐']
给dogs中没有性别的狗添加性别为 ‘公’
dogs = [{'name':'贝贝','color':'白色','breed':'银狐','age':3,'gender':'母'},{'name':'花花','color':'灰色','breed':'法斗','age':2},{'name':'财财','color':'黑色','breed':'土狗','age':5,'gender':'公'},{'name':'包子','color':'黄色','breed':'哈士奇','age':1},{'name':'可乐','color': '白色','breed':'银狐','age':2},{'name':'旺财','color':'黄色','breed':'土狗','age':2,'gender':'母'}] for x in dogs:x.setdefault('gender','公') print(dogs) ## 结果显示 [{'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'}, {'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2, 'gender': '公'}, {'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'}, {'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1, 'gender': '公'}, {'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2, 'gender': '公'}, {'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'}]
统计 ‘银狐’ 的数量
dogs = [{'name':'贝贝','color':'白色','breed':'银狐','age':3,'gender':'母'},{'name':'花花','color':'灰色','breed':'法斗','age':2},{'name':'财财','color':'黑色','breed':'土狗','age':5,'gender':'公'},{'name':'包子','color':'黄色','breed':'哈士奇','age':1},{'name':'可乐','color': '白色','breed':'银狐','age':2},{'name':'旺财','color':'黄色','breed':'土狗','age':2,'gender':'母'}] B=[x['breed'] for x in dogs if x['breed']=='银狐'] print(len(B)) ## 结果显示 2
python 8 字典相关推荐
- python 判断字典是否包含某个key,以及对应的value 值
python 判断字典是否包含某个key 可以使用 in 来判断 具体如下: num = {"a": 1, "b": 2, "c": 3} ...
- python嵌套字典取值_python嵌套字典比较值与取值的实现示例
python嵌套字典比较值与取值的实现示例 本文通过示例给大家介绍了python嵌套字典比较值,取值,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 #取值import t ...
- python实现字典遍历稳定有序使用collection包OrderedDict
python实现字典遍历稳定有序使用collection包OrderedDict **注意虽然python3.6之后,dict本身也会保留插入的顺序,但是并不是严格保证的: Python3.6中的字典 ...
- python 遍历字典
python 遍历字典 d = {'a': 1, 'b': 2, 'c': 3, 4: 'd', 5: 'e'} for key in d:print(key, ":", d[ke ...
- python字典怎么排序_如何对python的字典进行排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...
- 如何在Python中将字典键作为列表返回?
本文翻译自:How to return dictionary keys as a list in Python? In Python 2.7 , I could get dictionary keys ...
- python 对字典排序
工作中经常需要对python的字典进行排序,下面就简单介绍一下如何对字典排序: 使用sorted命令,默认进行从大到小字母序排序: >>> from operator import ...
- python中字典按键或键值排序
字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...
- python中字典和集合的区别_Python中字典和集合学习小结
映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...
- Python遍历字典的方法
python的字典由两部分组成. key(键),value(值) 创建个字典 dict1 = {"name":"test1","year": ...
最新文章
- Android之对资源图片进行比例缩放
- Equinix 位于伦敦的LD8数据中心发生严重故障
- 【bzoj4372】烁烁的游戏 动态点分治+线段树
- js编写简易返回顶部按钮
- 图解MapReduceMapReduce整体流程图
- c++两个vector合并_数据结构——算法初步(4)——合并排序算法
- Cissp全过程(简介到考试后)
- android adb shell 常用命令
- android点滴9:模拟器中如何输入中文
- CI控制器调用内部方法并载入相应模板的做法
- 创建mysql数据库远程工具连接及ER图工具mysqlWorkbench使用
- smarty capture使用
- C语言求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入。...
- 用友NC总账辅助余额表与应收应付模块余额表对账技巧
- ​Debug如何引流(降龙十八掌)
- python椭圆拟合_椭圆拟合(python)
- 全球知名虚拟服务器,国外十大虚拟主机
- 设计项目全生命周期管理系统构建与实践
- 怎么关闭计算机右侧的硬盘预览,选择性关闭视频文件预览 给Win7硬盘CPU减压
- (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
热门文章
- Codeforces Round #545 (Div. 2) C. Skyscrapers
- Jzoj4699 Password
- 知识图谱:【图数据库Nebula(一)】——Nebula简介
- 计算机网络八大性能指标
- 签署您的应用——多渠道签名打包教程
- 【学数据结构】-----串(顺序串、堆串、块链串)(7000字总结+代码+图)
- Wed Aug 03 19:48:03 +0800 2022这种字符串,怎么转成时间格式年月日
- Samba————Linux与windows共享文件
- java.sql.SQLException: The server time zone value ' й ʱ ' is unrecognized or represents more tha
- 关于k700c,t628键值的问题!