本章内容
1、集合及其运算
2、文件操作
3、字符编码与转码
4、函数与函数式编程
5、局部变量与全局变量
6、递归
7、补充知识点
一、集合及其运算
1、概念:
set集合是一个不重复元素集,用 { } 括起来,元素用 , 隔开,并且集合是无序的,无法通过下标进行索引
2、集合的创建
1 list_1 = [1,2,3,4,5,6,7,8]2 set_1 =set(list_1)3 set_2 = set([2,4,6,8,10])4 print(set_1,set_2)
>>>{1, 2, 3, 4, 5, 6, 7, 8} {8, 2, 10, 4, 6}
3、求集合交集的两种方法
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 print(set_1.intersection(set_2))4 print(set_1 & set_2)
>>>
{8, 2, 4, 6}
{8, 2, 4, 6}
4、求集合并集的两种方法
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 print(set_1.union(set_2))4 print(set_1 | set_2)
>>>
{1, 2, 3, 4, 5, 6, 7, 8, 10}
{1, 2, 3, 4, 5, 6, 7, 8, 10}
5、求集合差集的两种方法
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 print(set_1.difference(set_2))4 print(set_1 - set_2)
>>>
{1, 3, 5, 7}
{1, 3, 5, 7}
6、判断子集关系
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 set_3 = set([1,2,3,4,5,6])4 print(set_1.issubset(set_2))5 print(set_3.issubset(set_1))
>>>
False
True
7、判断父集关系
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 set_3 = {1,2,3,4,5,6}4 print(set_1.issuperset(set_2))5 print(set_1.issuperset(set_3))
>>>
False
True
8、对称差集
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 print(set_1.symmetric_difference(set_2))4 print(set_1 ^ set_2)
>>>
{1, 3, 5, 7, 10}
{1, 3, 5, 7, 10}
9、判断是否没有交集,是则返回True
1 set_1 = {1,2,3,4,5,6,7,8}2 set_2 = {2,4,6,8,10}3 set_3 = {1,2,3,4,5,6}4 print(set_1.isdisjoint(set_3))
>>>False
10、在集合中添加一个元素
1 set_1 = {1,2,3,4,5,6,7,8}2 set_1.add(0)3 print(set_1)
>>>{0, 1, 2, 3, 4, 5, 6, 7, 8}
11、在集合中添加多个元素
1 set_1 = {1,2,3,4,5,6,7,8}2 set_1.update([9,10,11,12,13])3 print(set_1)
>>>{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
12、删除集合中的某一个指定元素,如果该元素不存在,则会报错
1 set_3 = {1,2,3,4,5,6}2 print("set_3:",set_3)3 set_3.remove(5)4 print("set_3:",set_3)
>>>
set_3: {1, 2, 3, 4, 5, 6}
set_3: {1, 2, 3, 4, 6}
13、计算集合的长度
1 set_1 = {1,2,3,4,5,6,7,8}2 print(len(set_1))
>>>8
14、测试某一个元素是否是该集合的成员
1 set_1 = {1,2,3,4,5,6,7,8}2 print(5 inset_1)3 print(5 not in set_1)
>>>
True
False
15、删除并返回任意一个元素
1 set_1 = {1,2,3,4,5,6,7,8}2 print(set_1.pop())
>>>
16、删除一个指定的元素,如果不存在,不会报错
1 set_1 = {1,2,3,4,5,6,7,8}2 set_1.discard(7)3 print(set_1)>>>{1, 2, 3, 4, 5, 6, 8}
二、文件操作
1、文件与文件路径
文件有两个关键属性:“文件名”和“路径”。
路径路径指明了文件在计算机上的位置,包括“绝对路径”和“相对路径”。
1.1 windows上的倒斜杠和Mac os、Linux上的正斜杠
在Windows上,路径书写使用倒斜杠作为文件夹之间的分隔符,但是在Mac os和Linux上使用正斜杠作为文件夹之间的分隔符,如果想要在所有的系统上使用程序,就要考虑这两种情况。
可以使用os.path.join()函数来将文件和路径上的文件夹名字连起来,函数会返回一个文件路径的字符串,包含正确的路径分隔符。
importosprint(os.path.join('user','test.txt