前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python set 集合方法

Python set 集合方法

作者头像
用户7886150
修改2021-01-26 10:29:14
3490
修改2021-01-26 10:29:14
举报
文章被收录于专栏:bit哲学院

参考链接: Python set集合 intersection()

set 

#无重复,可变–>元素的去重 #无序、唯一、可变。集合中的元素需要可哈希的,元素不可以是可变对象。 #内置函数len(),max(),min(),tuple(),enumerate() 

#====================set方法======================

t= set(('a',1,'b','c','d'))

t.add('x')

 # 添加一项

s.update([10,37,42]) 

# 在s中添加多项

t.remove('H')

#删除一项

len(s)

#set 的长度

x in s

#测试 x 是否是 s 的成员

x not in s

#测试 x 是否不是 s 的成员

s.issubset(t)

s <= t

#测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)

s >= t

#测试是否 t 中的每一个元素都在 s 中

s.union(t)

s | t

#返回一个新的 set 包含 s 和 t 中的每一个元素

s.intersection(t)

s & t

#返回一个新的 set 包含 s 和 t 中的公共元素

s.difference(t)

s - t

#返回一个新的 set 包含 s 中有但是 t 中没有的元素

s.symmetric_difference(t)

s ^ t

#返回一个新的 set 包含 s 和 t 中不重复的元素

s.copy()

#返回 set “s”的一个浅复制

#浅复制和深复制(适用所有)----------------

print('===浅复制====')

set1 = [10000,2,3,[1,2]]

set2 = set1.copy()

print(id(set1),id(set2))

print(id(set1[0]),id(set2[0]))

#说明:浅复制只是复制了一层

print('===深复制====')

import copy

set3 = copy.deepcopy(set1)

print(id(set1),id(set3))

print(id(set1[0]),id(set3[0]))

#深复制:复制了所有的层,除了最底层使用了一样9的数据

扩展 

下面这个表列出了对于 Set 可用二对于 ImmutableSet(不可变集合) 不可用的运算: 

介绍格式: 

运算符(voperator)等价于运算结果 

s.update(t)

s |= t

#返回增加了 set “t”中元素后的 set “s”

s.intersection_update(t)

s &= t

#返回只保留含有 set “t”中元素的 set “s”

s.difference_update(t)

s -= t

#返回删除了 set “t”中含有的元素后的 set “s”

s.symmetric_difference_update(t)

s ^= t

#返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”

s.add(x)

#向 set “s”中增加元素 x

s.remove(x)

#从 set “s”中删除元素 x, 如果不存在则引发 KeyError

s.discard(x)

#如果在 set “s”中存在元素 x, 则删除

s.pop()

#删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError

s.clear()

#删除 set “s”中的所有元素

后期新增知识点(注意点) 

1、使用set()强制转换类型时,转换后的集合内容是升序排列的,虽然集合是可变的,但是输出是升序的。

    >>> set([6,3,2,5,1,6,2])

    {1, 2, 3, 5, 6}        

    >>> set((1,2,5,6,2,4,7))

    {1, 2, 4, 5, 6, 7}

    >>> set((5,3,5,2,3,1,6))

    {1, 2, 3, 5, 6}

    >>> set({3:5,2:1,6:2,2:4,9:1,4:2})

    {2, 3, 4, 6, 9}

2、总结一下set集合之间的运算符>,>=,<,<=的意义

    A < B      #判断A是否是B的真子集

    A <= B   #判断A是否是B的子集

    A > B    #判断B是否是A的真子集

    A >= B   #判断B是否是A的子集

    eg:

        >>> A = {1,2,3}

        >>> B = {1,2,3}

        >>> C ={1,2,3,4}

        >>> A < B

        False

        >>> A <= B

        True

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档