Set的使用

Python set 方法
集合(set)
1.set是一个无序不重复的序列

2.可以用 { } 或者 set( ) 函数创建集合

3.集合存放不可变类型(字符串、数字、元组)

注意:创建一个空集合必须用 set( ) 而不是 { } ,因为 { } 是用来创建一个空字典

4.  set.add(x)

add(x)将元素x添加到集合里

s = {1,2,3,4,5,}
s.add(‘5’)
print(s)
{1, 2, 3, 4, 5, ‘5’}

5.  set.update(x) 可更新多个值

update(x),将x添加到集合中,且参数可以是列表、元组、字典等

s = set((‘a’, ‘cc’, ‘f’))

添加字典只能添加不可变的–键

dict_1 = {‘name’: ‘bb’, ‘age’: ‘cc’, ‘f’: 11}
s.update(dict_1)
print(“添加字典”+str(s))

添加字典{‘name’, ‘a’, ‘age’, ‘f’, ‘cc’}

s = set((‘a’, ‘cc’, ‘f’))
tup_1 = (1, 2,)
s.update(tup_1)
print(s)
{1, 2, ‘a’, ‘f’, ‘cc’}

s = set((‘a’, ‘cc’, ‘f’))
list_1 = [‘w’, ‘a’, 1]
s.update(list_1)
print(s)
{1, ‘f’, ‘w’, ‘a’, ‘cc’}

6.  set.remove(x)

移除集合中元素,如果移除的元素不在集合中将发生错误

s = set((‘a’, ‘cc’, ‘f’))
s.remove(‘cc’)
print(s)
{‘a’, ‘f’}

s = set((‘a’, ‘cc’, ‘f’))
s.remove(‘mm’)
print(s)
Traceback (most recent call last):
File “C:/Users/123/PycharmProjects/py2018/test”, line 104, in
s.remove(‘mm’)
KeyError: ‘mm’

7.  set.discard(x)

移除集合中元素,如果移除的元素不在集合中不会发生错误

s = set((‘a’, ‘cc’, ‘f’))
s.discard(‘mm’)
print(s)
{‘cc’, ‘a’, ‘f’}

8.  set.pop()

随机删除集合中元素

s = set((‘a’, ‘cc’, ‘f’))
s.pop()
print(s)
{‘a’, ‘cc’}

9.  set.clear()

清空集合

s = set((‘a’, ‘cc’, ‘f’))
s.clear()
print(s)
set()

10.  计算set元素个数
s = set((‘a’, ‘cc’, ‘f’))
print(‘集合元素个数为:’+str(len(s)))
集合长度为:3

11.  set.copy
s = set((‘a’, ‘cc’, ‘f’))
s1 = s.copy()
print(s1)
{‘a’, ‘f’, ‘cc’}

12.  差集(-) (difference)

difference求差集 或者用 -

s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’, 1, ‘ww’}

两种求差集的方法

print("在s中不在s1中: "+str(s.difference(s1)))
print('在s1中不在s中: '+str(s1-s))
复制代码
在s中不在s1中: {‘cc’}
在s1中不在s中: {‘ww’, 1}

13.  交集(&) (intersection)
s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’, 1, ‘ww’}

同时在集合s 和 s1 中的元素

print(s.intersection(s1))
print(s1&s)
{‘a’, ‘f’}
{‘a’, ‘f’}

14.  并集(|) (union)
s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’, 1, ‘ww’}

元素在集合 s 中或在集合 s1 中

print(s.union(s1))
print(s1|s)
{‘a’, 1, ‘f’, ‘cc’, ‘ww’}
{‘a’, 1, ‘f’, ‘cc’, ‘ww’}

15.  对称差集(^) (sysmmetric_difference)
s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’, 1, ‘ww’}

除集合s和集合s1共有的以外的元素

print(s.symmetric_difference(s1))
print(s1^s)
{1, ‘ww’, ‘cc’}
{1, ‘ww’, ‘cc’}

16.  set.issubset(x) 判断一个集合是否是另一个集合的子集
s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’}
print(s.issubset(s1))
print(s1.issubset(s))
False
True

17.  set.isuperset(x) 判断一个集合是否是另一个集合的父集

s = set((‘a’, ‘cc’, ‘f’))
s1 = {‘a’, ‘f’}
print(s.issuperset(s1))
print(s1.issuperset(s))

s1是s的子集,s是s1的父集

print(s1.issubset(s))

True
False
True

18.  symmetric_difference_update() 对称更新差集
#将s2更新到s1中的同时去除s2 和s1中相同的元素
s1 = {‘ljl’,‘wc’,‘xy’,‘zb’,‘lsy’}
s2 = {‘mmf’,‘lsy’,‘syj’}
s1.symmetric_difference_update(s2)
print(s1)
{‘syj’, ‘xy’, ‘wc’, ‘ljl’, ‘zb’, ‘mmf’}

19.  isdisjoint() 检测2个集合是否不存在交集 存在交集 False
s1 = {‘ljl’,‘wc’,‘xy’,‘zb’,‘lsy’}
s2 = {‘mmf’,‘lsy’,‘syj’}
s3 = {1, 2}
print(s1.isdisjoint(s2))
print(s1.isdisjoint(s3))
False
True

20.  intersection_update 交集更新操作

s1 = {‘ljl’,‘wc’,‘xy’,‘zb’,‘lsy’}
s2 = {‘mmf’,‘lsy’,‘syj’}
s1.intersection_update(s2)
s2.intersection_update(s1)
print(s1)
print(s2)

{‘lsy’}
{‘lsy’}

参考:http://www.cnblogs.com/cyx-12/p/9234285.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值