python基础笔记第四课_字典&集合&笔记

本文详细介绍了Python中的字典和集合,包括它们的定义、特点、操作方法,如增删改查,并通过实例展示了如何在实际场景中使用字典和集合。同时,讨论了数据类型中的可变和不可变类型,以及浮点数精度控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、可变与不可变类型:

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 += 2

print(a)

赋值运算

name = "yuz"

name += "wang"

print(name)



6.判断很重要:测试就是判断,True False

 大小判断

print( 4 > 3)



7.充值功能

 ==

balace = 5000

money = 300

expect = 5030

print( balace + money == expect)



8.比较:> , < , ==, !=, >=, <=



9.逻辑运算:and or not

 and 只要有一个为 False, 最终就是为 False

a = 4 > 3  True

print(a)

b = len('hello') >  False

print(a and b)

 and 只有所有判断同时满足,才会得到 True

 or: 只要有一个得到 True, 最终就是 True

print(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



一定要转化成 str

print(Decimal(str(0.1)) +  Decimal(str(0.2)) == Decimal(str(0.3)))



随机生成测试数据

import random

print(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


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值