Python3中的集合

目录

 

1:集合的定义及特性

2:常用集合字面量及操作

2.1常用集合字面量及操作汇总

1:集合的定义及特性

        集合(set)是一种唯一的,不可变对象的无序集合,集合是一种可变数据类型。集合中的元素是唯一的,不能重复,并且其中的元素(包含子元素)只能是不可变数据类型(可哈希化的)。集合是无序的,并且不会把键映射到值,所有他们既不是序列也不是映射类型,集合的行为更像是一个有键无值的字典。另外集合本质上具有基本的数学特性。
集合具有如下特性:
A:不可变对象的无序集合,它可变长度,能够任意嵌套。
B:既不能可通过键来访问,也不能通过偏移访问。

2:常用集合字面量及操作

2.1常用集合字面量及操作汇总

操作

说明

示例

结果

st=set()

空集合(注意:{} 是一个空字典 )

st=set()

print(type(st),st)

<class 'set'> set()

st={1,'2',(3,4)}

有3个元素的集合

st={1,'2',(3,4)}

print(type(st),st)

<class 'set'> {1, (3, 4), '2'}

st={1,'2',(3,(3,4))}

集合嵌套(只能嵌套不可变数据类型)

st={1,'2',(3,(3,4))}

print(type(st),st)

<class 'set'> {1, (3, (3, 4)), '2'}

st=set("1,2,3")

st=set([1,2,3])

 

构造方法:可迭代对象

st=set("1,2,3")

print(type(st),st)

st=set([1,2,3])

print(type(st),st)

<class 'set'> {'1', ',', '2', '3'}

<class 'set'> {1, 2, 3}

st1 – s2

st1 | s2

st1 & s2

st1 ^ s2

 

 

集合运算

s1= {1,2,3,4}

s2= {3,4,5,6}

print('1---s1',s1)

print('2---s2',s2)

print('3---s1-s2',s1-s2)

print('3---s1|s2',s1|s2)

print('3---s1&s2',s1&s2)

print('3---s1^s2',s1^s2)

1---s1 {1, 2, 3, 4}

2---s2 {3, 4, 5, 6}

3---s1-s2 {1, 2}

4---s1|s2 {1, 2, 3, 4, 5, 6}

5---s1&s2 {3, 4}

6---s1^s2 {1, 2, 5, 6}

 

 

 

 

 

 

 

 

x in st

成员关系:元素存在测试

st= {1,2,3,4}

print(3 in st)

print(8 in st)

True

False

st.add()

增加元素(元素只能是不可变数据类型)

st= {1,2,3,4}

print(st)

print(st.add('123'))

print(st)

st.add([1,2])

{1, 2, 3, 4}

None

{1, 2, 3, 4, '123'}

Traceback (most recent call last):

  File "D:\python\集合.py", line 64, in <module>

    st.add([1,2])

TypeError: unhashable type: 'list'

st.clear()

清空所有元素

st= {1,2,3,4}

st.clear()

print(st)

set()

st.copy()

拷贝集合

st= {1,2,3,4}

st2 = st.copy()

st2.add('abc')

print('st=',st)

print('st2=',st2)

st= {1, 2, 3, 4}

st2= {1, 2, 3, 4, 'abc'}

st.pop()

删除一个元素

st= {'99',99,2,3,4,11}

print(st)

st.pop()

print(st)

{2, 99, 3, 4, '99', 11}

{99, 3, 4, '99', 11}

st.remove(x)

删除指定元素

st= {'99',99,2,3,4,11}

print(st)

st.remove(3)

print(st)

{2, 3, 99, 4, 11, '99'}

{2, 99, 4, 11, '99'}

st1.union(st2)

并集,结果生成新的集合,st1,st2中元素不变

st1 = {1,2,3,4}

st2 = {3,4,5,6}

print('1---st1',st1)

print('1---st2',st2)

st3 = st1.union(st2)

print('2---st3',st3)

print('2---st1',st1)

print('2---st2',st2)

1---st1 {1, 2, 3, 4}

1---st2 {3, 4, 5, 6}

2---st3 {1, 2, 3, 4, 5, 6}

2---st1 {1, 2, 3, 4}

2---st2 {3, 4, 5, 6}

st1.update(st2)

把st2合并到st1中去

st1 = {1,2,3,4}

st2 = {3,4,5,6}

print('1---st1',st1)

print('1---st2',st2)

st3 = st1.update(st2)

print('2---st3',st3)

print('2---st1',st1)

print('2---st2',st2)

1---st1 {1, 2, 3, 4}

1---st2 {3, 4, 5, 6}

2---st3 None

2---st1 {1, 2, 3, 4, 5, 6}

2---st2 {3, 4, 5, 6}

st ={x*2 for x in range(4) }

集合迭代

st ={x*2 for x in range(4) }

print(st)

{0, 2, 4, 6}

 

查看更多方法:

print([item for item in dir(set) if not item.startswith('__') ])

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值