set集合

集合特点:

1、set也用{ }表示,无序(没有索引),去重复.

#自动去重
s = {"吕布","小乔","蔡文姬","关羽","吕布"}
print(s)
结果:
{'小乔', '关羽', '吕布', '蔡文姬'}
#将列表去重
lst = [1,2,3,2,4,5,6,4,2,5,6,6,4,5]
s = set(lst)                        #把列表转换成集合,去重
lst = list(s)                      #把集合转换成列表
print(s)
结果:
[1, 2, 3, 4, 5, 6]

2、里面的元素必须是可哈希的(int,str,tuple,bool)。

3、set就相当于不存value的字典,只保存key。

4、本身是可变的数据类型,有增删改查操作。

1) 增加       #add()    update() 迭代更新

s = {"关羽", '赵云', "刘备"}
s.add("张飞")
print(s)
s.add("张飞") # 重复的内容不会被添加到set集合中
print(s)

2) 删除   # pop()   remove()   clear( )

s = {"关羽", '赵云', "刘备"}
item = s.pop() # 随机弹出⼀个.
print(s)
print(item)
s.remove("赵云") # 直接删除元素
# s.remove("张飞")  # 不存在这个元素. 删除会报错
print(s)
s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和dict区分的.
print(s)   # set()

3) 改 #先删除后添加

# set集合中的数据没有索引. 也没有办法去定位⼀个元素. 所以没有办法进⾏直接修改. 
# 我们可以采⽤先删除后添加的⽅式来完成修改操作
s = {"刘备", '关羽', "张飞"}
# 把刘备改成赵云
s.remove("刘备")
s.add("赵云")
print(s)

4) 查

# set是⼀个可迭代对象. 所以可以进⾏for循环
for el in s:
print(el)

5、常用操作

交集 &(两个集合共有元素) 

并集 |     

差集 -   

异或 ^     

子集  (s1<s2)     

超集  (s1>s2) 

 

 

 

posted @ 2019-07-20 18:02  劲爆小土丝  阅读(155)  评论(0编辑  收藏  举报