2021-03-10

字典

增和改:

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

删:

1.del字典[key] - 删除字典中指定key对应的键值对
2.del 字典[key] - 删除字典中指定Key对应的键值对

字典相关操作

1.字典不支持+、* 和比较大小。只支持比较是否相等的运算
2.in 和 not in - 判断字典中指定key对应的键值对
3.dict 、len
dict(数据) - 将数据转换成字典
a.数据必须是序列
b.序列中元素必须是小序列,而且小序列有且只有两个元素,第一个元素必须是不可变的

字典推导式

{表达式1:表达式2 for 变量 in 序列}
{表达式1 :表达式2 for 变量 in 序列 if 条件语句}
dict(表达式 for x in 序列) - 表达式必须是有且只有两个元素的序列,第一个元素必须是不可变的

字典相关方法

1.字典.clear() - 清空字典
2.字典.copy() - 复制字典产生一个一模一样的新字典
3.字典.values() - 获取字典所有的值,返回的不是列表是一种序列
4.字典.keys() - 获取字典所有的键,返回的不是列表是一种序列
5.字典.item() - 获取字典所有的键值对;返回的是序列,序列中的元素是每个键值对对应的元组
6.字典.setdefault(key, value) - 在字典中添加键值对(不会在key存在的时候进行修改操作)
7.字典.update(序列) - 将序列中所有的元素作为键值对添加到字典中,序列必须是可以转换成字典的序列
8.字典.update(字典2) - 将字典2中的键值对全部添加到字典1中

集合

1.含义:集合是容器型数据类型;将{}作为容器的标志,元素之间用逗号隔开:{元素1, 元素2, 元素3…}
集合是可变的:集合是无序的(不支持下标)
元素:必须是不可变的数据;元素是唯一的

1)空集合:set1 = set()
2).集合是无序的
3).集合的元素必须是不可变的类型的数据
4).集合的元素是唯一的,自带去重功能,只能去元素是不可变的序列的重。

2.增删改查
1)查 - 集合只能遍历
2)增 - 集合.add(元素) - 在集合中添加指定元素
3)集合.update(序列) - 将序列中的元素全部添加到集合中
删:
4)集合.remove(元素) - 删除指定元素,当元素不存在时报错
5)集合.discard(元素) - 删除指定元素,当元素不存在时不报错

改:
6)改 - 不能直接修改某个元素,只能先删再加

3.数学集合运算:交集、并集、差集、对称差集、子集和真子集
1)交集:&
集合1 & 集合2 - 获取两个集合公共的部分
print(s1 & s2) # {5, 6, 7}

2)并集:|
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}

  1. 差集:-
    集合1 - 集合2 - 获取集合1中除了在集合2里面的元素
    print(s1 - s2) # {1, 2, 3, 4}
    print(s2 - s1) # {8, 9}

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

5)子集和真子集
集合1 >= 集合2 - 判断集合2是否是集合1的子集
集合1 > 集合2 - 判断集合2是否是集合1的真子集
print({100, 200, 300} >= {1, 2}) # False
print({1, 2, 3, 100, 200} >={1, 2}) # True
print({1, 2, 3, 100, 200} > {1, 2, })

4.集合相关操作
1)in 和 not in
print({1, 2, 3} | {3, 4}) # True

2)max、min、sorted
print(max({10, 3, 95})) # 95
print(sorted({34, 56, 32, 21, 98})) # [21, 32, 34, 56, 98]
print(sum({23, 55, 66, 32})) # 176

print(len({23, 45, 65, 43, 23, 65})) # 4 自动去重

作业

3.用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

a:求选课学生总共有多少人

Chinese = {'小猪', '佩奇', '乔治', '山羊'}
math = {'小猪', '佩奇', '小乔 ', '小治', '奇奇', }
English = {'佩奇', '奇奇', '犬夜叉', '桔梗', '杀生丸', }
print(len(Chinese | math | English), '个学生', sep='')

b:求只选了第一个学科的人的数量和对应的名字

Chinese = {'小猪', '佩奇', '乔治', '山羊'}
math = {'小猪', '佩奇', '小乔 ', '小治', '奇奇', }
English = {'佩奇', '奇奇', '犬夜叉', '桔梗', '杀生丸', }
count = (Chinese - math - English )
print(len(count), '个学生只选择了语文', count, sep='')

c. 求只选了一门学科的学生的数量和对应的名字

Chinese = {'小猪', '佩奇', '乔治', '山羊'}
math = {'小猪', '佩奇', '小乔 ', '小治', '奇奇', }
English = {'佩奇', '奇奇', '犬夜叉', '桔梗', '杀生丸', }
a = (Chinese & math)
b = (English & Chinese)
c = (math & English)
new_set = (a | c | b )
count = (Chinese | math | English)
print(len(count - new_set), '个学生只选择了一门学科',  count - new_set, sep='')

d. 求只选了两门学科的学生的数量和对应的名字

Chinese = {'小猪', '佩奇', '乔治', '山羊'}
math = {'小猪', '佩奇', '小乔 ', '小治', '奇奇', }
English = {'佩奇', '奇奇', '犬夜叉', '桔梗', '杀生丸', }
a = (Chinese & math)
b = (math & English)
c = (English & Chinese)
count=a|b|c
stu = (Chinese & math & English)
print(len(count ^ stu), '个学生', (count^stu), sep='')

e. 求选了三门学生的学生的数量和对应的名字

Chinese = {'小猪', '佩奇', '乔治', '山羊'}
math = {'小猪', '佩奇', '小乔 ', '小治', '奇奇', }
English = {'佩奇', '奇奇', '犬夜叉', '桔梗', '杀生丸', }
count = (Chinese & math & English)
print(len(Chinese & math & English),'个学生选择了三门学科', count, sep='')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
embedcpp-2021-03是一个有关嵌入式C++编程的课程,于2021年3月举办。嵌入式C++编程是指在嵌入式系统中使用C++编程语言进行开发的一种方法。 在嵌入式系统中,资源通常是有限的,例如处理器速度、内存容量和存储空间等。因此,使用C++编程语言可以提供更高的灵活性和效率,帮助开发人员充分利用有限的资源。C++在嵌入式系统中的应用范围广泛,例如物联网设备、汽车电子和工业自动化等领域。 embedcpp-2021-03课程旨在向学员介绍嵌入式C++编程的基础知识和技巧。课程内容通常包括以下方面: 1. C++语法和特性:介绍C++的基本语法、面向对象编程和泛型编程等概念,以及C++11、C++14和C++17的一些新特性。 2. 嵌入式系统概述:了解嵌入式系统的基本特点、硬件和软件组成,以及与传统桌面开发的区别。 3. 低级编程:学习如何与硬件交互,包括使用寄存器、配置外设和处理中断等。还可以介绍使用汇编语言优化性能的技巧。 4. 内存管理:探讨嵌入式系统中的内存管理技术,包括堆栈和堆的使用、动态内存分配和对象生命周期管理等。 5. 实时操作系统(RTOS):介绍嵌入式系统中常用的实时操作系统,如FreeRTOS和µC/OS等,学习如何使用RTOS进行任务调度和资源管理。 除了理论知识,embedcpp-2021-03课程通常还包括实际的项目练习,以帮助学员将所学知识应用于实际场景。通过该课程,学员可以了解嵌入式C++编程的基础概念和实践技巧,为嵌入式系统开发提供了一定的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值