python基础笔记第四课_字典集合笔记
一、可变与不可变类型:
1.不可变类型:定义好变量后,不能修改、添加、删除
int 、float、 tuple、 bool、 str 都为不可变类型
2.可变类型:定义好变量后,可进行修改内部元素
list、dict、set
3.replace与split操作后均为新的数据
二、字典的定义以及使用
1.字典的作用:存储多个数据,可读性更强,容易知道每个元素的意义。
2.表示方式{"key":"value","key1":"value1"}
3.字典的键需要满足
a.key必须是唯一的,不能存在两个相同的key;
b.key必须为不可变类型,key的值只能为int 、float、 tuple、 bool、 str,不能用list与dict,因为key值是唯一的(一般情况下都为字符串),值可以是任意的数据(字典、元组、列表等)
4.
a.字典没有索引,为可变类型数据,且无序可修改,每次输出都会改变;
b.列表、元组、字符串都为有序类型;
c.有序类型可根据索引、切片获取数据;
d.字典只能根据key去获取;
5.空字典d = {}
6.取值,不能根据索引,只能根据key取值,方式 字典名[key],
7.key必须是惟一的不能重复,出现重复时,后面的会将前面的覆盖
dict_1 = {'name':'李文','name':'松江'} print(dict_1) 打印结果:{'name': '松江'} print(len(dict_1)) 打印结果:1 #key值重复,长度为1
8.字典的增删改查
(1).字典增:
新的键值赋值 dict[新的key] = value/ dict.update()将一个字典的所有元素更新到另一个字典中
dict_1 = {'name':'liwen','sex':'女','age':18}
dict_1['tel'] = 18674857485
print(dict_1) 打印结果:{'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1 = {'name':'liwen','sex':'女','age':18}
dict_1.update({'tel':15890987678})
print(dict_1) 打印结果:{'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 15890987678}
(2).字典删:
dict.pop(key) / del dict[key] /dict.popitem() 删除最后一个添加的元素/ dict.clear(),只能根据索引删除,不能根据值删除
#dict.pop(key)
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1.pop('name') print(dict_1)
打印结果:{'sex': '女', 'age': 18, 'tel': 18674857485}
#del dict[key]
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485} del
dict_1['tel'] print(dict_1) 打印结果:{'name': 'liwen', 'sex': '女', 'age': 18}
#dict_1.popitem()删除最后一个添加的元素,py3.7版本以上
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1.popitem() print(dict_1) 打印结果:{'name': 'liwen', 'sex': '女', 'age': 18}
#清空字典 dict.clear() dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1.clear() print(dict_1) 打印结果:{}
(3)修改字典:
dict[已存在的key] = value
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1['age'] = 20
print(dict_1) 打印结果:{'name': 'liwen', 'sex': '女', 'age': 20, 'tel': 18674857485}
(4)字典查 :
get():获取键对应的值
keys():获取所有的键,可以用list将结果转化为列表
values():获取所有的值,可以用list将结果转化为列表
items():获取所有的键值对,可以用list将结果转化为列表,列表中每个键值对组成元组
#get():获取键对应的值:
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
print(dict_1.get('name')) 打印结果:liwen
#获取所有键名 dict.keys():
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
print(dict_1.keys()) 打印结果:dict_keys(['name', 'sex', 'age', 'tel'])
#获取所有值 dict.values()
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
print(dict_1.values()) 打印结果:dict_values(['liwen', '女', 18, 18674857485])
#items():获取所有的键值对,可以用list将结果转化为列表,列表中每个键值对组成元组
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
print(dict_1.items()) 打印结果:dict_items([('name', 'liwen'), ('sex', '女'), ('age', 18), ('tel', 18674857485)])
5.字典的其他用法
A.获取字典长度:len(dict)
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
print(len(dict_1)) 打印结果:4
B.复制字典:dict.copy()
dict_1 = {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
dict_1.copy()
print(dict_1) {'name': 'liwen', 'sex': '女', 'age': 18, 'tel': 18674857485}
6.字典在自动化测试中用例中的所有数据都可以用字典存储;
三、集合
1.集合的定义:花括号或set()函数用来创建集合
2.注意:要创建一个空集合只用用set(),而不能用{},后者为创建一个空字典
3.集合的方法:
(1)增加元素add
set_1 = {'name','sex'} set_1.add('age') print(set_1) 打印结果:{'sex', 'name', 'age'}
(2)删除元素:pop、remove
set_1 = {'sex', 'name', 'age'} set_1.pop()
print(set_1) 打印结果:{'age', 'sex'} 每次打印删除均不一样 随机删除
set_1 = {'sex', 'name', 'age'}
set_1.remove('sex')
print(set_1) 打印结果:{'age', 'name'}
(3)自动化测试中集合很少用来存放数据
(4)集合的交集、并集、差集
4.集合的主要作用去重,没有顺序
case = [ 'name', 'password', 'tel' , 'name' ]
case_set = set(case) #将列表转化为集合
print(case_set) 打印结果:{'password', 'name', 'tel'}
五、运算
1.数学运算print( 1 + 1)print( 3 - 1)print( 1 * 1)print( 6 / 2) 除法得到的是浮点数2.整除print( 7 // 2)3.取余数 、 模print( 11 % 3)4.幂运算 2 的 3 次方print( 2 ** 3)5.赋值运算a = 6 += -= *=a = a + 2
等价的a += 2print(a)赋值运算name = "yuz"name += "wang"print(name)6.判断很重要:测试就是判断,True False大小判断print( 4 > 3)7.充值功能 ==balace = 5000money = 300expect = 5030print( balace + money == expect)8.比较:> , < , ==, !=, >=, <=9.逻辑运算:and or notand 只要有一个为 False, 最终就是为 Falsea = 4 > 3 Trueprint(a)b = len('hello') > 9 Falseprint(a and b) and 只有所有判断同时满足,才会得到 Trueor: 只要有一个得到 True, 最终就是 Trueprint(not b)如果存在多个运算,到底先算哪一个,运算优先级不需要记优先级, 括号的作用在运算当中可以提高优先级result = (4 > 3) and (len('hello') > 9)10.in / not in 成员运算,是否在某某的里面, 字符串,列表,元组,字典new_string = "baimengmeng"print("m" in new_string)print("meng" in new_string)print("y" not in new_string)
六、浮点运算
计算机当中10进制的小数print(0.1 + 0.1)print(0.1 + 0.2)print(0.1 + 0.3)print(0.1 + 0.4)print(0.1 + 0.2 == 0.3)
(1)浮点运算符注意控制精度,在py中使用decimal专门控制浮点精度,使用时需要导入
from decimal import Decimal
print(0.1+0.2) 打印结果:0.30000000000000004
from decimal import Decimal print(Decimal(str(0.1))+Decimal(str(0.2))) 打印结果:0.3
一定要转化成 strprint(Decimal(str(0.1)) + Decimal(str(0.2)) == Decimal(str(0.3)))随机生成测试数据import randomprint(random.randint(1, 100)) #随机生成1-100之间的数据
七、作业:
字典
一、题目:使用字典和列表存储和操作以下数据
a. 某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄
b. 有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;
c, 平台为了保护你的隐私,需要你删除你的联系方式;
d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。
e, 你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。
答:
# a.存储个人信息表
info = {"name":'yanlizheng', "gender" : '女', "age" : 18}
print(f"a.个人信息表:{info}")
# b.补足身高和联系方式
info["height"] = "170cm"
info["phone"] = "18722028888"
print(f"b.补足身高和联系方式:{info}")
# c.删除联系方式
info.pop("phone")
print(f"c.删除联系方式:{info}")
# d.取一个花名(rose),修改自己的身高和年龄
info["Flower name"] = "rose" # 增加一个花名为rose
info["height"] = "175cm" # 修改身高
info["age"] = 23
print(f"d.取一个花名(rose),修改自己的身高和年龄:{info}")
# e.添加自己的兴趣
info["interest"] = ['study', 'sing', 'dance']
print(f"e.添加自己的兴趣:{info}")
二、数据类型
题目(字符串和列表):利用下划线将列表li=["python","java","php"]的元素拼接成一个字符串,然后将所有字母转换为大写。
答:
#利用下划线拼接成一个字符串
li = ["python", "java", "php"]
new_li = "_".join(li)
print(new_li)
#将所有字母转换为大写
li = new_li.upper()
print(li)
三、题目(类型操作)有下面几个数据 :
t1 = ("aa",11)
t2= ("bb",22)
li1 = [("cc",11)]
请通过学过的知识点,进行相关操作变为如下字典:
{"aa":11,"cc":11,"bb":22}
提示:元组取值,然后给字典添加key-value
答:
t1 = ("aa",11)
t2= ("bb",22)
li1 = [("cc",11)]
l = {}
l[t1[0]] = t1[1]
l[li1[0][0]] = li1[0][1]
l[t2[0]] = t2[1]
print(l)
四、题目:简述学过的数据类型:
可变类型有哪些
不可变类型有哪些
答:学过的数据类型有:1.int、 2.float 、3.bool 、4.string 、5.set、 6.list、 7.tuple、 8.dict、 9.complex
不可变类型有 :1.int、2.float、3.bool、 4.string、 7.tuple、9.complex
可变类型有:5.set、6.list、 8.dict
python基础笔记第四课_字典集合笔记相关推荐
- Python基础入门第四课--字符编码
这一节本来是和上一节的变量.函数写在一起的,由于是基础入门,写的太多会理解不了,所以将这部分分开来阐述.这里主要说字符编码的相关问题. 1.字符编码 在C语言中,我们学到最基础最重要的概念莫过于字符串 ...
- python海龟图画龙珠_阿里云天池龙珠计划——Python基础入门第2课:变量和赋值...
阿里云天池龙珠计划--Python基础入门第2课:变量和赋值 [我是测试题2]下面这段代码的运行结果是什么? # 运行一下结果就出来了 a = "hello" b = " ...
- Python学习第七课-元组字典集合
Python学习第七课-元组&字典&集合 一.元组 1.1元组简介 1.2元组的拆包 1.3字符串拆包 1.4列表的拆包 1.5拆包练习 二.字典的简介 2.1介绍 2.2操作 三.字 ...
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...
- 20190513——python基础(列表、数据类型:字典、列表和字典的异同)
二.python基础(列表.数据类型:字典.列表和字典的异同) 1.列表 1)什么是列表 2)从列表提取单 ...
- python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...
Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...
- 全民一起玩Python提高篇第四课:深入数据类型与语法细节(下)
提高健壮性 如果 try 结构的位置不当,可能导致死循环等问题. file_name=input('请输入文件名:') try:with open(file_name) as f:#用with的方式读 ...
- Python基础教程(第2版)读书笔记
作者简介:Magnus Lie Hetland(http://hetland.org/)挪威科技大学副教授. 第一章基础知识 str().repr().反引号的使用与区别:str 和int.long一 ...
- 附笔记pdf下载,MIT中文线性代数课程精细笔记[第四课]
点击上方"MLNLP",选择"星标"公众号 重磅干货,第一时间送达 鉴于之前MIT的线代笔记没有跟新完和很多童鞋希望pdf版本下载学习,这里我把相关资源放到gi ...
最新文章
- mysql权限的误操作的恢复
- DB2日志传送基础知识简介
- xxl-job 2.1.1执行器源码解读
- linux mkdir绝对路径,linux学习(六)绝对路径、相对路径、cd、mkdir、rmdir、rm(示例代码)...
- 学计算机的如何学英语,怎么在电脑上学习英语
- 曲率多项式转换为直角坐标系
- 【nodejs原理源码杂记(8)】Timer模块与基于二叉堆的定时器
- [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(4)
- 全国大学生创新创业比赛-----采油厂绩效考核系统的设计与开发
- 游戏建模教程:肌肉建模丨人体比例及肌肉骨骼介绍
- Win7下无法安装CDC Comms Interface驱动的朋友进
- 学完后端还要学前端,在这之间还有中间件
- 环形回路算法(python3)
- 请说明Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
- c语言系统垃圾清理软件,c语言中加入“一键清理系统垃圾”的代码怎么实现?...
- 在UE4中创建新的Shading Model
- 关于面试“有戏”和“没戏”的信号
- python乌龟画五角星_使用Python的turtle模块画五角星
- 谷歌学术403异常处理
- Socket和ServerSocket(建立客户端和服务器端)