006---Python基本数据类型--集合

集合

 

 

 

集合的定义及创建

  • 定义:集合是一种可变的数据类型。但是集合里面的元素必须是不可变类型。无序的,里面的元素不重复。
  • 表示:{}
  • 特性:去重
 

创建:

In [4]:
s1 = set()
s2 = set((1,2,3))
s3 = {1,2,3}

print(s1,type(s1))
print(s2,type(s2))
print(s3,type(s3))
 
set() <class 'set'>
{1, 2, 3} <class 'set'>
{1, 2, 3} <class 'set'>
 

集合的常用方法

In [10]:
# 增加

s1 = {1,2,3}

# add()  添加单个元素
s1.add(4)
print(s1)

# update()  可迭代类型
s1.update([5,6,7])
print(s1)
 
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 7}
In [20]:
# 删除

s1 = {1,2,3,4}

# 随机删除
res = s1.pop()
print(res)

# 指定元素删除
res = s1.remove(4)
print(s1)

# 清空
s1.clear()
print(s1)
 
1
{2, 3}
set()
In [ ]:
s1 = {1,2,3,4,5}
s2 = {3,4,5,6,7,8,}

# 交集
res = s1&s2
print(res)

# 并集
res = s1|s2
print(res)

# 差集
print(s1-s2)
print(s2-s1)

# 交差补集
print(s1^s2)

s3 = {1,2,3,}
s4 = {1,2,3,4,5}

# s4是否是s3的超集
print(s4>s3)
# s3是否是s4的子集
print(s3<s4)
In [117]:
# 集合本身是可变的数据类型,可利用frozenset来变成不可变数据类型

s1 = {1,2,3,4}
s2 = frozenset(s1)
print(s1,type(s1))
print(s2,type(s2))

# for i in s2:
#     print(i)
    
for j in s2:
    print(j)

# 不可修改
s2.add(1)
s2.clear()
 
{1, 2, 3, 4} <class 'set'>
frozenset({1, 2, 3, 4}) <class 'frozenset'>
1
2
3
4
 
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-117-8a6c38bec0dc> in <module>
     13 
     14 # 不可修改
---> 15s2.add(1)
     16 s2.clear()

AttributeError: 'frozenset' object has no attribute 'add'
posted @ 2018-12-16 20:02  爬呀爬Xjm  阅读(205)  评论(0编辑  收藏  举报