一、元组
元组的属性:有序不可改,可以通过下标获取元素
1、元祖命名可以用(),只有一个元素的时候要加逗号
L3=() L2=(1,) L1=(1) print(type(L3)) print(type(L2)) print(type(L1)) <class 'tuple'> <class 'tuple'> <class 'int'>
2、有序可以通过下标获取元素,且可以循环:
yuanzu=('test',1,12,12.22) print(yuanzu[0]) # test print(yuanzu[-1]) # 12.22 for i in yuanzu: print(i) # test # 1 # 12 # 12.22
3、可用的方法如下:
L2=('test',1,12,12.22,1) print(L2.count(1)) #获取元素出现的次数 2 print(L2.index('test')) #获取元素对应的下标 0
二、集合
#集合天生可以去重
#集合是无序的
1、集合的命名,空集合不可以用{}
s2 = set() #空集合 s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合
2、常用的方法
1)强转为set
l = [1,2,3,4,5,6,7,7,7,6,6,1,1] l = set(l) print(l) {1, 2, 3, 4, 5, 6, 7}
2)添加元素
s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合 s.add(8) #添加元素 print(s) {1, 2, 3, 4, 5, 6, 7, 8}
3)将一个集合添加到另一个集合中
s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合 s.update({'MLing',11,100}) #把另外一个集合加入这个集合里面 print(s) {1, 2, 3, 4, 5, 6, 7, 'MLing', 100, 11}
4)删除指定的元素
stu={1, 2, 3, 4, 5, 6, 7, 'MLing', 100, 11} stu.remove(4) #删除指定的元素 print(stu) {1, 2, 3, 5, 6, 7, 100, 11, 'MLing'}
3.关系方法:
关系测试,交集、并集、差集、对称差集
1)取交集:都存在的
l1 = range(0,11) #学了自动化的学生 l2 = [2,4,5,6] #学性能的学生 l1 = set(l1) l2 = set(l2) print(l1 & l2) #取交集,就是两个集合里面相同的元素 print(l1.intersection(l2)) {2, 4, 5, 6} {2, 4, 5, 6}
2)取并集
l1 = range(0,11) #学了自动化的学生 l2 = [2,4,5,6] #学性能的学生 l1 = set(l1) l2 = set(l2) print(l1.union(l2)) #并集,就是把两个集合合并到一起 print(l1 | l2) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
3)取差集
l1 = range(0,11) #学了自动化的学生 l2 = [2,4,5,6] #学性能的学生 l1 = set(l1) l2 = set(l2) print(l1 - l2 )#差集,在a集合里面存在,在b集合里面不存的 print(l1.difference(l2)) {0, 1, 3, 7, 8, 9, 10} {0, 1, 3, 7, 8, 9, 10}
4)对称差集
l1 = range(0,11) #学了自动化的学生 l2 = [2,4,5,6] #学性能的学生 l1 = set(l1) l2 = set(l2) print(l1 ^ l2) #对称差集,把a集合和b集合里面相同的元素去掉,剩下的 print(l1.symmetric_difference(l2)) {0, 1, 3, 7, 8, 9, 10} {0, 1, 3, 7, 8, 9, 10}
5)判断子集和父集
l1 = range(0,11) #学了自动化的学生 l2 = [2,4,5,6] #学性能的学生 l1 = set(l1) l2 = set(l2) print(l1.issuperset(l2)) #判断a集合是不是b集合的父集 print(l2.issubset(l1)) #判断a集合是不是b集合的子集 True True