Python基本数据类型(集合)

1. 定义与特性

1.1 定义

集合(set)是一个无序的不重复的元素序列

1.2 特性

  1. 无序
  2. 不重复
# 1.集合特性(不重复、无序)
set03 = {'a','b','c','b'}
print(set03)    # {'a', 'b', 'c'}
for i in set03:
    print(i)
'''
c
a
b
'''

2. 集合的创建

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

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

# 方式一:
set_exemple = {value01,value02,value03...}
# 方式二:
set_exemple = set(value)

例如:

set01 = {'a','b',12,'c'}
set02 = set(['a','b',22])

3. 集合的常用方法

集合内置方法列表

方法作用
add为集合添加元素
update给集合添加元素
remove移除指定元素
discard删除集合中指定的元素
pop随机移除元素
clear移除集合中的所有元素
copy拷贝一个集合
difference返回多个集合的差集
difference_update移除集合中的元素,该元素在指定的集合也存在。
intersection返回集合的交集
intersection_update返回集合的交集。
isdisjoint判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset判断指定集合是否为该方法参数集合的子集。
issuperset判断该方法的参数集合是否为指定集合的子集
symmetric_difference返回两个集合中不重复的元素集合。
symmetric_difference_update移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union返回两个集合的并集

3.1 添加元素

add

# add
# 作用:添加,仅支持添加一个元素,如果元素已存在,则不进行任何操作
# 语法:s.add(x)
set04 = {'a',2,}
set04.add('b')
print(set04)    # {'a', 2, 'b'}

update

# update
# 作用:添加,添加一个或多个元素,且参数可以是列表,元组,字典等
# 语法:s.update(x)
set05 = {'x',3}
set05.update('y','z')
print(set05)    # {'x', 3, 'y', 'z'}
set05.update(['a','b'])
print(set05)    # {3, 'y', 'x', 'b', 'z', 'a'}

3.2 移除元素

remove

# 3.2 移除元素
# remove
# 作用:将元素x从集合s中删除,若元素不存在,则报错
# s.remove(x)
set06 = {'a','b','c'}
set06.remove('a')
print(set06)    # {'c', 'b'}
set06.remove('d')
'''
  File "C:集合.py", line 67, in <module>
    set06.remove('d')
KeyError: 'd'
'''

discard

# discard
# 作用:将元素x从集合s中删除,若元素不存在,不会发生错误
# 语法:s.discard(x)
set07 = {'a','b','c'}
set07.discard('a')  # {'b', 'c'}
print(set07)
set07.discard('d')  # {'b', 'c'}
print(set07)

pop

# pop
# 作用:随机删除一个元素
set08 = {'a','b','c'}
item = set08.pop()
print(item) # c

3.3 clear清空集合

clear

# clear
# 作用:清空整个集合
set09 = {'a','b','c'}
set09.clear()
print(set09)    # set()

3.4 包含判断

in/ not in

# in/not in
# 作用:判断是否包含某元素
# 返回值:True/False
# 语法:item in/not in set
set10 = {'a','b','c'}
print('a' in set10) # True
print('d' not in set10) # True
print('a' not in set10) # False

3.5 len方法

len

# len
# 作用:计算集合元素个数
# 语法:len(set)
set11 = {'a','b','c'}
ret = len(set11)
print(ret)  # 3

3.6 集合推导式(set comprehension)

集合和列表、元组类似,也支持同种格式的推导式,如下

set12 = {x for x in 'abcdefabc' if x not in 'abc'}
print(set12)    # {'f', 'e', 'd'}

4. 集合的关系运算

集合的关系运算支持如下:

运算符含义
set_a - set_b求差,集合a中包含而集合b中不包含的元素
set_a | set_b求和/并集,集合a和b中包含的所有元素
set_a & set_b交集,集合a和b都包含的元素
set_a ^ set_b不同时包含在a和b中的元素
# 关系运算
set_a = {'a','b','c','d','e','f'}
set_b = {'d','e','f','g','h','i'}

# 1 求差,集合a中包含而集合b中不包含的元素
ret21 = set_a - set_b
print(ret21)    # {'c', 'b', 'a'}
# 2 求和,集合a和b中包含的所有元素
ret22 = set_a | set_b
print(ret22)    # {'h', 'c', 'd', 'f', 'i', 'a', 'e', 'b', 'g'}
# 3 交集,集合a和b都包含的元素
ret23 = set_a & set_b
print(ret23)    # {'e', 'f', 'd'}
# 4 不同时包含在a和b中的元素
ret24 = set_a ^ set_b
print(ret24)    # {'h', 'c', 'g', 'b', 'i', 'a'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值