Python 集合操作

#1.创建集合使用{}或者set()函数,创建空的集合,只能使用set()函数,因为{}是字典
#集合相比于列表和元组,有一个去掉重复元素的特性
set1 = {10, 20, 30, 40, 10}
set2 = set()
print(set1)        #输出 {40, 10, 20, 30}
#这里注意,集合的输出跟定义的顺序不一致,也就是说集合没有顺序,所以不支持下标操作
#这里也去掉了重复的数据
print(set2)        #输出 set()
print(type(set1))  #输出 <class 'set'>
print(type(set2))  #输出 <class 'set'>
set3 = set('abcdefg')
set4 = set('123456')
print(set3)        #输出 {'g', 'b', 'c', 'e', 'd', 'a', 'f'}
print(set4)        #输出 {'4', '3', '5', '6', '1', '2'}

=======================================

#2.集合的常见操作
#2.1 增加
#2.1.1 add()函数
#当向集合内增加已经存在的数据时,不进行任何操作
#add()只能向集合里增加单一数据,如果增加其他的比如一个列表,会报错
set1 = {"11", "22", "33", "44", "55"}
print(set1)     #输出 {'11', '55', '33', '44', '22'}
set1.add("11")
print(set1)     #输出 {'11', '55', '33', '44', '22'}
set1.add(66)
print(set1)     #输出 {'11', '66', '55', '33', '44', '22'}
#set1.add([11, 33])  #报错 TypeError: unhashable type: 'list'

#2.1.2 update()函数, 增加的是序列,不能增加单一数据,否则会报错
set1.update([11, 13, 21, 22, 31, 32, 33])
print(set1)  #输出 {32, '22', 33, '55', 11, 13, '33', '44', '11', '66', 21, 22, 31}
#set1.update(22) #报错 TypeError: 'int' object is not iterable
set1 = {"11", "22", "33", "44", "55"}
#2.2删除
#2.2.1 remove() ,删除集合中指定数据,如果不存在则报错
print(set1)         #输出 {'33', '11', '55', '22', '44'}
#注意,这里 set1.remove(11),这样删除会报错  KeyError: 11
set1.remove("11")   #输出 {'33', '55', '22', '44'}
print(set1)
#set1.remove("11")   #报错 KeyError: '11'

#2.2.2 discard(), 删除集合中指定数据,如果不存在也不报错
print(set1)         #输出 {'44', '55', '33', '22'}
set1.discard('22')
print(set1)         #输出 {'44', '55', '33'}
set1.discard('22')  #不报错
print(set1)         #输出 {'44', '55', '33'}

#2.2.3 pop()函数, 随机删除集合中的数据, 并返回这个数据
print(set1)             #输出 {'33', '44', '55'}
del_data = set1.pop()
print(del_data)         #输出 33
print(set1)             #输出 {'44', '55'}
#2.3 查找
#in 和 not in
#2.3.1 in 判断数据是否在集合,在的话返回True, 不在的话返回 False
set1 = {"11", "22", "33", "44", "55"}
print("11" in set1)  #输出 True
print(11 in set1)    #输出 False
发布了80 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qiukapi/article/details/104262603
今日推荐