2021-03-10

今日学习内容:

"""

# 1.列表相关方法

# 2.元组(tuple)

"""

序列, (元素1, 元素2, ...)不可变;有序 元组是不可变的列表

"""

t1 = (10,)

t2 = 19, 2, 34, 5

print(t2)

t3 = (10, 89)

print(t3[0], t3[1])

x, y = t3

print(x, y)

t4 = (19, 23, 45, 67, 78, 89)

*x, y = t4

print(y, x)

x, y, *z = t4

# 3.字典

"""

序列,{键1:值1, 键2:值2,...}可变的;

无序的键 - 不可变的数据;

唯一的值 - 任何类型的数据

"""

# 查 - 获取值

# 查单个: 字典[key] / 字典.get(key) / 字典.get(key, 默认值)

"""

for 变量 in 字典: 变量取到的是字典的key

"""

# 4.列表推导式

"""

1)序列元素整体变换[表达式 for 变量 in 序列]

2)按两种不同的方式来变换[表达式1 if 条件语句 else 表达式2 for 变量 in 序列]

3)提取满足条件的元素,然后进行变换[表达式 for 变量 in 序列 if 条件语句]

"""

字典

"""

# 1. 增、改

"""

字典[key] = 值-当key存在的时候就是修改指定key对应的值,当key不存在的时候添加键值对

"""

# 2.删

# 1) del 字典[key] - 删除字典中指定key对应的键值对

# 3.字典相关操作

# 1)字典不支持+、*和比较大小,只支持比较是否相等的运算

# 2)in 和 not in -判断字典中是否存在指定的keyprint('a' in {'name': 'a', 'age': 18})   

# Falseprint('name' in {'name': 'a', 'age': 18})

# True

# 3)dict、len

"""

dict(数据) - 将数据转换成字典

a. 数据必须是序列

b. 序列中元素必须是小序列, 而且小序列有且只有两个元素,第一个元素必须是不可变的

"""

# 4.字典推导式

"""

{表达式1:表达式2 for 变量 in 序列}

{表达式1:表达式2 for 变量 in 序列 if 条件语句}

dict(表达式 for x in 序列) - 表达式必须是有且只有两个元素的序列,第一个元素必须是不可变的

"""

#5.字典相关方法

# dict

# 1) 字典.clear() - 清空字典

#2) 字典.copy() - 复制字典产生一个一模一样的新字典

# 3) (了解)dict.fromkeys(序列)  -  创建一个字典,将序列中所有的元素作为字典key,值默认都是None

 4) values、keys、items

"""

字典.values()  -   获取字典中所有的值;返回的不是列表另是一种序列

字典.keys()  -   获取字典中所有的键;返回的不是列表另是一种序列

字典.items() -   获取字典中键值对;返回的时候序列,序列中的元素是每个键值对对应的元组

"""

集合

"""

# 1.什么是集合(set)

"""

集合是容器型数据类型;将{}作为容器的标志,多个元素之间用逗号隔开:{元素1, 元素2, 元素3, ...}

集合是可变的;集合是无序的元素:必须是不可变的数据;元素是唯一的

"""

# 空集合: {}不是空集合,是空字典

set1 = set()

print(type(set1), len(set1))    

# <class 'set'> 0

# 集合是无序的

print({1, 2, 3} == {3, 1, 2})   

 # True

# 集合的元素必须是不可变的类型的数据

set2 = {23, 'abc', (2, 3)}

print(set2)

# set3 = {23, 'abc', [2, 3]}       

 # 报错!

# print(set3)

# 集合的元素是唯一的

set4 = {10, 20, 30, 10, 10}

print(set4)     

# {10, 20, 30}

# 集合自带去重功能,但是只能去元素是不可变的序列的重

# 2.增删改查

# 1) 查: 集合只能遍历

# 2) 增

# 集合.add(元素) - 在集合中添加指定元素

# 集合.update(序列) - 将序列中的元素全部添加到集合中

# 3) 删

# 集合.remove(元素) - 删除指定元素,如果元素不存在就报错

# 集合.discard(元素) - 删除指定元素,如果元素不存在不报错

# 3.数学集合运算:交集、并集、差集、对称差集、子集和真子集

s1 = {1, 2, 3, 4, 5, 6, 7}

s2 = {5, 6, 7, 8, 9}

# 1)交集:&

# 集合1 & 集合2  -  获取两个集合公共的部分

print(s1 & s2)      

# {5, 6, 7}

# 2)并集:|print(s1 | s2)      

# {1, 2, 3, 4, 5, 6, 7, 8, 9}

# 3)差集:

# 集合1 - 集合2  - 获取在集合1中但是不在集合2中的所有的元素print(s1 - s2)    

 # {1, 2, 3, 4}print(s2 - s1)     

# {8, 9}# 4)对称差集: ^# 集合1 ^ 集合2   - 获取只在集合1和只在集合2中的所有的元素print(s1 ^ s2)     

# {1, 2, 3, 4, 8, 9}

# 5)子集和真子集

# 集合1 >= 集合2  - 判断集合2是否是集合1的子集

# 集合1 > 集合2  -  判断集合2是否是集合1的真子集

作业练习

#定义三个集合
subject1={'zhangsan' ,'wangwu','lisi','zhaojiu','Tom','Jenny'}
subject2={'lisi','zhaojiu','stu1','stu2',' zhangsan'}
subject3={'stu3','stu6;'zhangsan', zhaojiu',stu7',Tom',xiaoming'}
subject = subject1 | subject2 | subject3
print(subject)
#a.求选课学生总共有多少人
print(选课学生总数,len(subject)
#b.只选了第一门学科的人数和对应的名字
subject_first = subject1-subject2-subject3
print(只选了第一门学科的人数和对应的名字",len(subject_first),subject_first)
#C.只选了一门学科的人数和对应的名字
subject_one=((subject1Asubject2))-subject3)|((subject1&subject3)-subject2)|((subject2&subject3)-subject1)
print("只选了一门学科的人数和对应的名字,len(subject_one),subject_one)
#d.只选了两门学科的人数和对应的名字

subject_two=(subject1&subject2-subject3)|(subject1&subject3-subject2)|(subject2&subject3-subject1)
print(只选了两门学科的人数和对应的名字"len(subject_two),subject_two)
#e.选了三门学科的人数和对应的名字
subject_all= subject1&subject2&subject3 I
print(选了三门学科的人数和对应的名字",len(subject_all,subject_all)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值