day04_集合

集合(set())

  • 无序

  • 不可重复

  • 不可更改

    • 内部元素是可哈希的
    • 集合本身是不可哈希的
  • 用{}括起来的单元素数据集

用途:

  • 去重(列表—>集合,自动去重)
  • 关系测试

集合的创建

(1)空集合的创建

st = set()
print(st)

st()

(2)多元素的集合创建

st = set()
st = {1,2,3,"a","b","c"}
print(st)

{1, 2, 3, 'c', 'a', 'b'}

(3)强转

li = ["city","college","zhengjiang"]
st = set(li)
print(st,type(st))

{'city', 'zhengjiang', 'college'} <class 'set'>

dic = {"id":31902103,"name":"chh","age":18}
st = set(dic)
print(st)

{'id', 'name', 'age'}	#字典强转时只要键而忽略值的存在

集合的操作

(1)增

  • set.add()
  • set.update()

(2)删

  • set.pop() #删除排序最小的一个元素

    st = {"a","ab","b","c",1}
    print(st.pop())
    
  • set.remove() #删除元素,不存在会报错

    st = {"a","ab","b","c",1}
    st.remove("a")
    print(st)
    
    {1, 'c', 'ab', 'b'}
    
  • set.discard()#删除元素不存在不会报错

    st = {"a","ab","b","c",1}
    st.discard("d")
    print(st)
    
    {'a', 1, 'ab', 'b', 'c'}
    
  • del set

  • set.clear()

    st = {"a","ab","b","c",1}
    st.clear()
    print(st)
    
    set()
    

(3)改

不可改的

(4)查

不可查的

(5)遍历

st = {"a","ab","b","c",1}
for i in st:
    print(i,end=" ")
    
1 a c b ab 

st = {"a","ab","b","c",1}
for i in enumerate(st):
    print(i,end=" ")
    
(0, 1) (1, 'ab') (2, 'c') (3, 'a') (4, 'b') 

集合的基本运算

(1)子集

  • <
  • set.issubset()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(c.issubset(a))
print(c < a)

True
True

(2)交集

  • &
  • set.intersection()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.intersection(b))
print(c & a)


{'c', 'd'}
{'a', 'b'}

(3)并集

  • |
  • set.union()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.union(b))
print(c | a)

{'f', 'e', 'c', 'a', 'd', 'b'}
{'c', 'a', 'd', 'b'}

(4)差集

  • set.difference()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.difference(b))
print(a - c)

{'a', 'b'}
{'c', 'd'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值