cyx-12

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 <module>
    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\'}

 

 

21.  定义不可变集合    例:     s = frozenset(\'a\', \'b\')

分类:

技术点:

相关文章:

  • 2021-08-22
  • 2021-06-09
  • 2021-07-04
  • 2021-06-22
  • 2021-11-23
猜你喜欢
  • 2021-11-03
  • 2021-06-07
  • 2021-05-18
  • 2021-11-28
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案