XX学Python·集合
集合
-
集合是一个无序,不重复的数据序列。
-
无序:程序员无法控制其排布顺序,无法使用索引查找或修改数据
-
不重复:没法在集合里放入相同的值,会自动去重,类似于字典的键
-
定义:变量={数据1,数据2,...},空集合set()
# 无序
set1 = {1,2,5,6,4,3}
#在集合中会使用数据的值计算哈希值,根据哈希值排序。但程序员无法利用其顺序。
print(set1) # {1, 2, 3, 4, 5, 6}
# 不重复
set2 = set('123412')
print(set2) # {'4', '2', '1', '3'}自动去重
# 定义空集合,不能用{},{}是空字典
set3 = set()
print(set3) # set()
# 布尔值在进行计算时 True==1,Fasle==0
set4 = {1,12.3,True,False,'','中国'}
print(set4) # {False, 1, '', '中国', 12.3}
# 元组类型可以放入集合里储存
set5 = {1,12.3,True,False,'',(1,2)}
print(set5) # {False, 1, (1, 2), '', 12.3}
# 列表、字典、集合本身都无法用集合储存
# set6 = {1,12.3,True,False,'',[1,2]} # TypeError: unhashable type: 'list'
# set7 = {1,12.3,False,'',{1:2}} # TypeError: unhashable type: 'dict'
# set8 = {1,12.3,False,'',{1,2}} # TypeError: unhashable type: 'set'
# 不能作为集合元素的数据类型,同样不能作为字典的键出现
dict1 = {(1,2):3}
print(dict1) # {(1, 2): 3}元组可以作为字典的键
# dict2 = {[1,2]:3} # TypeError: unhashable type: 'list'
集合的增加
set1 = {1,2,4,3}
# add()方法 :增加单一元素
set1.add(5)
print(set1) # {1, 2, 3, 4, 5}
# update内部只能填写容器类型(数据序列)
# set1.update(6) # TypeError: 'int' object is not iterable
set1.update([3,6,7],'ai你') # 已存在会自动去重
print(set1) # {1, 2, 3, 4, 5, 6, 7, 'i', '你', 'a'}
集合的删除
set1 = {3,2,'rose','jack'}
# remove 删除指定的元素,元素不存在会报错
set1.remove(3)
print(set1) # {'rose', 2, 'jack'}
# pop 随机删除一个元素 ,并将删除的元素返回
print(set1.pop())
print(set1)
set1.pop()
print(set1)
# discard 删除指定的元素,元素不存在不报错
set2 = {3,2,'rose','jack'}
set2.discard(3)
print(set2)
set2.discard(8)
print(set2)
集合的遍历
set1 = {3,2,'rose','jack'}
for i in set1:
print(i)
'''结果顺序不定
jack
2
3
rose
'''