python集合数据结构_Python数据结构-集合

1.集合

"""

集合(set):没有重复元素且没有顺序的数据结构

定义语法:

s = set({}) #空集合

s = set({1, 2, 3, 4, 5})

增加:

add() 往集合添加一条数据

update() 合并,支持传入列表、字典、元组、集合,不支持传入单个元素

删除:

remove() 根据值删除,值不存在会报错

discard() 根据值删除,值不存在不会报错

pop() 随机删除

clear() 清空

长度:

len 获取元素的容量大小

元素是否存在:

in set中存在该值吗?

not in set中不存在该值吗?

交集 & 获取两个集合中共同有的元素

并集 | 获取两个集合中的所有元素

差集 - 获取在a集合中出现了但在b集合的中没有出现的元素

"""

# 定义语法:

# s = set({})#定义一个空集合

# s = set({1, 2, 3, 4}) # 定义一个有初始化值的集合

# 没有重复元素

# s = {1, 2, 3, 4, 1}

# print(s) # {1, 2, 3, 4}

# 增加:

# add()

# s = set({})

# s.add("1")

# s.add("2")

# s.add("3")

# print(s) # {'2', '3', '1'}

# update()

# s = set({1, 2, 3})

# s.update((4, 5)) # 传入一个元组

# print(s) # {1, 2, 3, 4, 5}

# s.update({"name": "zzw", "age": 18}) # 传入一个字典,只会把key添加进去

# print(s)

# s.update([1, 4, 5]) # 传入一个列表

# print(s) # {1, 2, 3, 4, 5}

# s.update(set({4, 5, 6})) # 传入一个集合

# print(s) # {1, 2, 3, 4, 5, 6}

# s.update(1) # 报错TypeError: 'int' object is not iterable

# 删除

# s = {1, 2, 3, 4, 5, 6}

# remove()

# s.remove(1)

# print(s) # {2, 3, 4, 5, 6}

# discard()

# s.discard(1) # {2, 3, 4, 5, 6}

# remove()和discard()的区别 体现在删除一个不存在元素时的处理方式不同

# s.remove(7) # 报错

# s.discard(7) # 不报错

"""

pop() 随机删除一个元素

"""

# pop() 随机删除一个元素

# print(s.pop()) # 1

# clear() 清空数据

# print(s) # {1, 2, 3, 4, 5, 6}

# s.clear()

# print(s) # set()

# 交集、并集、差集

# 交集

# s1 = set({1, 2, 3})

# s2 = set({2, 3, 4})

# print(s1 & s2) # {2, 3}

# 并集

# s1 = set({1, 2, 3})

# s2 = set({2, 3, 4})

# print(s1 | s2) # {1, 2, 3, 4}

# 差集

# s1 = set({1, 2, 3})

# s2 = set({2, 3, 4})

# print(s1 - s2) # {1}

# 元素去重 list-->set-->list

# lis = {1, 2, 3, 1, 2, 4, 5}

# s = set(lis)

# lis = list(s)

# print(lis) # [1, 2, 3, 4, 5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值