集合(set)

Posted shance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合(set)相关的知识,希望对你有一定的参考价值。

 定义:1.不同元素组成(指不可重复,可以用 此性质来去重,但是顺序不可能恢复原样)

    

s = set(li)

a = set([h,e,e])
print(a)


#输出结果
{‘h‘, ‘e‘}

 

    2.集合是无序的

    3.存放的都是不可变元素 (也就是说列表,和字典不可以作为元素存放在集合里)

   4.集合也可以定义不可变的(s = format((1,2,3,4,5)))

  在集合里可以增加,删除,不可以修改

定义方法

s = {1, 2, 3, 4}
a = set("hello")
print(a)
#输出结果
(‘h‘,‘e‘,‘l‘,‘o‘)
  • 集合的方法

  1. 添加(add()方法一次只能添加一个值,用update()来可以一次添加多个,update()是重新更新集合的意思

  • add()
a = set([h,e,l])
a.add(b) 
a.add(3)

print(a)

#结果
{3, b, e, l, h}
  • update()
a = set([h,e,l])
a.update(sa,b)        #update会将后边的以迭代的方式取出来添加到集合里
print(a)
li = [1,2,3,4,5]
a.update(li)  #后边可以是列表元组
print(a)
#结果 
{l, h, s, b, e, a}
{‘h‘, 1, 2, 3, 4, ‘a‘, 5, ‘l‘, ‘b‘, ‘s‘, ‘e‘}

  2.清空 clear()

a = {1,2,3,4,5,6}
a.clear()
print(a)

#结果
set()

  3.拷贝copy()

  4.删除 pop(),remove(),discard()

    

a = {1,2,3,4,5,6}
b = a.pop()        #随机从集合里删除一个值 但是可以得到删除的值
a.remove(4)# 指定删除某只但是如果删除的值不存在会报错
a.discard(5)# 如果删除的不存在并不会报错
print(a)


#结果
{2, 3, 6}
  • 关系测试

  1.求两个集合的交集

  

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.intersection(l2)) #相当于l1 & l2


#结果
{1, 2, 3}

  2.并集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.union(l2)) #相当于l1 | l2

#结果
{1, 2, 3, 4, 5, 6, 7, 8, 9}

  3.差集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.difference(l2)) # 相当于 l1 - l2


#结果
{4, 5, 6}

  4.交叉补集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.symmetric_difference(l2)) #相当于 l1 ^ l2  并集减去两个相交的


#结果
{4, 5, 6, 7, 8, 9}

  5....._uodate()这是指求完之后在再更新到前面的

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}
l1.difference_update(l2)#相当于 l1 = l1 - l2
print(l1)


#结果
{4, 5, 6}
  • 集合也可以定义不可变的

 













以上是关于集合(set)的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

金蝶handler中 collection 代码片段理解

Alfred常见使用

peptide map DDA和IMS有啥区别

比较 C# 中的字符串片段并从集合中删除项目