python中集合相关的一些方法

集合:可变的数据类型,它里面的元素必须是不可变的数据类型,无序不重复

1:集合的创建

1 set1 = set({1,2,3,'barry'})
2 set2 = {1,2,'barry'}
3 print(set1,set2)        #输出结果:{1, 2, 3, 'barry'} {1, 2, 'barry'}

2:集合的增

1 add()方法增加
2 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
3 set1.add('python')
4 print(set1)           #输出结果:{'barry', 'alex', 'ritian', 'wusir', 'egon', 'python'}
1 update:迭代着增加
2 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
3 set1.update('A')
4 print(set1)              #输出结果:{'ritian', 'barry', 'alex', 'wusir', 'A', 'egon'}
5 set1.update('老师')
6 print(set1)              #输出结果:{'ritian', 'barry', 'alex', '师', 'wusir', '老', 'A', 'egon'}
7 set1.update([1,2,3])
8 print(set1)               #输出结果:{1, 2, 'ritian', 'barry', 'alex', '师', 3, 'wusir', '老', 'A', 'egon'}

对比列表中的迭代添加

1 #extend() 迭代的去添加
2 li = ['python', 'java', 'c++']
3 li.extend('aaaaa')
4 print(li)        #输出结果:['python', 'java', 'c++', 'a', 'a', 'a', 'a', 'a']

对比字典中的update()

 1 ###》》》》改
 2 
 3 #利用键值对修改,有键则覆盖,无键则添加
 4 
 5 #update     只可意会不可言传
 6 dic1 = {
 7     'name' : 'python',
 8     'age' : '1981',
 9     'sex' : 'male'
10 }
11 dic2 = {
12     'name' : 'java',
13     'hobby' : 'coding'
14 }
15 
16 print(dic2.update(dic1))        #输出结果:None
17 print(dic1)                 #输出结果:{'name': 'python', 'age': '1981', 'sex': 'male'}
18 print(dic2)              #输出结果:{'name': 'python', 'hobby': 'coding', 'age': '1981', 'sex': 'male'}

3:集合的删

 1 set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
 2 set1.remove('alex')    #删除一个元素
 3 print(set1)            #输出结果:{'barry', 'ritian', 'egon', 'wusir'}
 4 set1.pop()           #随机删除一个元素
 5 print(set1)             #输出结果:{'ritian', 'egon', 'wusir'}
 6 set1.clear()          #清空集合
 7 print(set1)             #输出结果:set()
 8 del set1             #删除集合
 9 print(set1)             #输出结果:(报错)    print(set1)
10                         #   NameError: name 'set1' is not define


对比列表当中的pop(),remove(),clear(),del

 1 #》》》》》》删
 2 
 3 #pop()
 4 li = ['python', 'java', 'c++']
 5 li.pop(1)
 6 print(li)     #输出结果:['python', 'c++'],若li.pop(),则默认删除最后一个元素
 7 
 8 #remove()
 9 li = ['python', 'java', 'c++']
10 li.remove('java')
11 print(li)      #输出结果:['python', 'c++']
12 
13 #del:按照切片的位置删除
14 
15 li = ['python', 'java', 'c++']
16 del li[1:2]
17 print(li)     #输出结果:['python', 'c++']
18 
19 #clear():  清空列表
20 
21 li = ['python', 'java', 'c++']
22 li.clear()
23 print(li)     #输出结果:  []

对比字典中的pop(),clear()

1 #pop()方法
2 dic1 = {
3     'name' : 'python',
4     'age' : '1981',
5     'sex' : 'male'
6 }
7 dic1.pop('name')   #有这个键的话则默认返回值为键值‘python’
8 print(dic1)        #输出结果:{'age': '1981', 'sex': 'male'}
9 print(dic1.pop('name','没有这个'))    #如果没有需要删除的键,默认返回None,也可自定义  输出结果:没有这个
1 #clear()  清空字典,同list的clear差不多
2 dic1 = {
3     'name' : 'python',
4     'age' : '1981',
5     'sex' : 'male'
6 }
7 print(dic1.clear())   #输出结果:None
8 print(dic1)           #输出结果:{}

4:集合的其他操作

1 交集(&  或者  intersection)
2 set1 = {1, 2, 3, 4, 5}
3 set2 = {4, 5, 6, 7, 8}
4 print(set1 & set2)         #输出结果:{4, 5}
5 print(set1.intersection(set2))    #输出结果:{4, 5}
1 #差集(-  或者 differenc) 即set1特有的元素
2 set1 = {1, 2, 3, 4, 5}
3 set2 = {4, 5, 6, 7, 8}
4 print(set1 - set2)              #输出结果:{1, 2, 3}
5 print(set1.difference(set2))    #输出结果:{1, 2, 3}
1 #反交集(^  或者 symmetric_difference)
2 set1 = {1, 2, 3, 4, 5}
3 set2 = {4, 5, 6, 7, 8}
4 print(set1 ^ set2)              #输出结果:{1, 2, 3, 6, 7, 8}
5 print(set1.symmetric_difference(set2))    #输出结果:{1, 2, 3, 6, 7, 8}
1 #子集与超集
2 set1 = {1, 2, 3}
3 set2 = {1, 2, 3, 4, 5, 6}
4 print(set1 < set2)
5 print(set1.issubset(set2))
6 print(set2 > set1)
7 print(set2.issuperset(set1))       #输出结果:以上输出都为True
1 #frozenset不可变集合,让集合变成不可变类型
2 s = frozenset('barry')
3 print(s, type(s))             #输出结果:frozenset({'b', 'y', 'a', 'r'}) <class 'frozenset'>

猜你喜欢

转载自www.cnblogs.com/rcat/p/9286875.html
今日推荐