python 集合

我就不记录集合的定义、以及高数中集合用法之类的东西了,指记录在我学到的python中,集合的用法等等的内容。

1、集合特征:
● 无序;
● 组成元素不可重复;
● 其内元素为不可变类型;
● 集合是可变类型,但也可定义为不可变集合;

2、常用语法:

s =  {'路飞','索大','娜美','布鲁克','山治','乔巴','路飞','香克斯'}

s.add('路飞')			# 追加元素
s.update()				# update 就是add多个值,按数据库update理解
s.clear()				# 清除集合内全部元素
s.copy()				# 复制集合
s.pop()               	# 随机删除元素
s.remove('路飞')		# 指定删除,不存在会报错
s.discard('路飞')		# 指定删除,不存在不报错

3、交并补差:

p_s = {'路飞','索大','娜美','布鲁克','山治'}
j_s = {'香克斯','白胡子','大妈','路飞','黑胡子','凯多'}

# 交集 &
print(p_s.intersection(j_s))    # 求交集
print(p_s & j_s)                # 求交集,简写

# 并集 |
print(p_s.union(j_s))           # 求并集
print(p_s | j_s)                # 求并集,简写

# 补集 ^
print(p_s.symmetric_difference(j_s))        # 求补集
print(p_s ^ j_s)                            # 求补集,简写

# 差集 -
print(p_s.difference(j_s))      # 求差集,
print(p_s - j_s)                # 求差集,简写

# 补充
p_s.difference_update(j_s)     	# 等价于:p_s = p_s - j_s
p_s.intersection_update(j_s)   	# 等价于:p_s = p_s & j_s
print(p_s.isdisjoint(j_s))      # 判定是否有交集 输出布尔值
print(p_s.issubset(j_s))        # 判定(子集) 输出布尔值
print(p_s.issuperset(j_s))      # 判定(父集) 输出布尔值

4、定义不可变集合:

s = frozenset('hello')

5、引申概念,利用集合的不可重复性,可进行去重;
但是我试了,比如列表,去重后无法恢复列表原有顺序;(虽然简单了,但是要慎重使用;)

# 使用举例:
p_n = ['路飞','索大','娜美','布鲁克','山治','香克斯','白胡子','大妈','路飞','黑胡子','凯多']
n = list(set(p_n))
print(n)
# 输出:
# ['黑胡子', '娜美', '大妈', '布鲁克', '路飞', '白胡子', '索大', '山治', '香克斯', '凯多']

以此记录,后续再补!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pypup

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值