当前位置: 移动技术网 > IT编程>脚本编程>Python > Python基础-week03

Python基础-week03

2018年03月14日  | 移动技术网IT编程  | 我要评论

本节内容:

  1.集合及其运算

  2.文件读与写详解(1-3)

  3.文件修改详解

  4.字符编码转化详解(1-2)

  5.函数与函数式编程(1-2)

  6.函数式编程之参数详解(1-2)

  7.函数式编程与函数不同

  8.局部变量与全局变量的作用域(1-2)

  9.递归

  10.高阶函数

 

一.集合及其运算

  1.集合的概念

    集合是一个无序的,不重复的数据组合,它的主要作用如下

      *去重,把一个列表变成集合,就自动去重了

      *关系测试,测试两组数据之前的交集、并集、差集、子集、父级、对称差集,判断没有交集等关系

  2.常用操作:

    1):集合的增删改查:

    

 1 #Author Jame-Mei
 2 #集合的增删改查等基本操作
 3 
 4 list1=set([1,3,5,7])
 5 
 6 #1.增加
 7 list1.add(9) #添加单项,update添加多项。
 8 print (list1):
 9 {1, 3, 5, 7, 9}
10 
11 =======================================
12 #2.删除
13 list1.remove(1) #删除指定单个,如果指定不存在报错
14 list1.pop()     #删除任意并返回
15 list1.discard('absdf')  ##删除指定单个,如果指定不存在返回None值(不报错)
16 
17 print (list1):
18 {3, 5, 7}
19 =======================================
20 
21 #3.修改
22 list1.update([2,4,6]) #注意这里格式,为列表的格式!!
23 list1.update(['a','A','b','C'])
24 
25 print (list1)#(输出后,原来的数据不变,会添加到集合里,顺序是随机的!)
26 {1, 2, 3, 4, 5, 6, 7, 'b', 'C', 'a', 'A'}
27 
28 ========================================
29 
30 #4.查看
31 
32 #1):长度
33 print(len(list1))
34 
35 #2):查看元素是否在集合中(列表,字典,集合,字符串都可以用in 或者not in来判断!!!)
36 print (5 in list1)
37 #3):查看元素是否不是list1中
38 print (9 not in list1)
39 
40 #4):测试list1是否是list2的子集
41 list2=set([1,3,5,7,9])
42 
43 
44 print(list1.issubset(list2))
45 #运算符
46 print (list1<=list2)
47 
48 #5):测试list2是否是list1的父级
49 print(list2.issuperset(list1))
50 #运算符
51 print (list2>=list1)
52 
53 #还有并集 | ,差集 - ,对称差集 ^,浅coyp: list1.copy等等
View Code

    2):常见的集合运算和集合运算符

     

 1 #Author Jame-Mei
 2 
 3 #1.去除除列表中重复值
 4 list1=[1,3,5,7,1,2,4,7]
 5 
 6 list1=set(list1)
 7 print (list1,type(list1))
 8 
 9 output:
10 {1, 2, 3, 4, 5, 7} <class 'set'>
11 =========================================================================================>>>>>>>>
12 
13 
14 #2.取交集:关系测试
15 list1=set([1,3,6,7,9])
16 list2=set([2,4,6,7,8])
17 #其中重复为6,7
18 print (list1,list2):
19 {1, 3, 6, 7, 9} {2, 4, 6, 7, 8}
20 
21 #list3为交集的元素
22 list3=list1.intersection(list2)
23 print (list3):
24 {6, 7}
25 
26 #交集元算符:&  (两边无先后顺序)
27 list1 & list2
28 =========================================================================================>>>>>>>>
29 
30 
31 #2.取并:union()
32 list1=set([1,3,5])
33 list2=set([2,4,6])
34 
35 list3=list1.union(list2)
36 print (list3):
37 {1, 2, 3, 4, 5, 6}
38 
39 #并集运算符:| (两边无先后顺序)
40 list1 | list2
41 =========================================================================================>>>>>>>>
42 
43 
44 #3.差集:求list1和list2共有的以外的,各自的元素。
45 list1=set([1,3,5,7,9])
46 list2=set([2,4,6,7,9])
47 
48 #取list1的差集,list2中没有的,属于list1的。
49 list3=list1.difference(list2)
50 print (list3):
51 {1, 3, 5}
52 
53 #取list2的差集,list1中没有的,属于list2的。
54 list4=list2.difference(list1)
55 print (list4):
56 {2, 4, 6}
57 
58 #差集运算符: - (在左边,不在右边)
59 list1 - list2
60 
61 list2 - list1(差集的元素在list2中,不在list1中)
62 =========================================================================================>>>>>>>>
63 
64 
65 #4.子集:list1是否是list2的子集(儿子),list1里面有的list2都有,list2里面有的,list1不一定有(list2包括list1)
66 list1=set([1,3,5])
67 list2=set([1,3,5,7,9])
68 print (list1.issubset(list2)):
69 True
70 =========================================================================================>>>>>>>>
71 
72 
73 
74 #5.父级:list1是否是list2的父级(父亲),list1包括list2,list1里面有的list不一定有,list2有的list1一定有。
75 list2=set([1,3,5])
76 list1=set([1,3,5,7,9])
77 print(list1.issuperset(list2)):
78 True
79 =========================================================================================>>>>>>>>
80 
81 
82 #6.对称差集:去除2者重复后的所有元素,或者这两者的差集相加,(互相都没有的和)就是对称差集。
83 list2=set([1,3,5,8,10,12])
84 list1=set([1,3,5,7,9])
85 
86 print (list1.symmetric_difference(list2)):
87 {7, 8, 9, 10, 12}
88 
89 #对称差集的元算符: ^ (返回一个新的 set 包含 list1 和 list2 中不重复的元素 ,无顺序关系!)
90 list1 ^ list2
91 
92 =========================================================================================>>>>>>>>
93 #7.判断没有交集,True=没有交集,False=有交集。
94 list1=set([1,3,5])
95 list2=set([2,4,6])
96 
97 flag=list1.isdisjoint(list2)
98 print(flag):
99 True
View Code

 

 

 

未完待遇.....

    

  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网