haibaraxx的个人博客分享 http://blog.sciencenet.cn/u/haibaraxx

博文

Python:集合及其内建函数

已有 3094 次阅读 2017-6-30 16:57 |个人分类:Python|系统分类:科研笔记| 集合, 内建函数

1 什么是集合?

集合是一个无序、不重复的元素的组合。因此它不支持索引、切片或其它类序列的操作。

包括:

- 可变集合(set)
- 不可变集合(frozenset)


2 集合的创建

- set(iterable)

- frozenset(iterable)

— iterable: 可迭代对象

# 创建空集合

- set()

- frozenset()


3 集合比较

4 集合关系运算

5 集合内建函数

5.1 面向所有集合的内建函数

#------------------------------------------------------------------------------------

判断包含与被包含关系(子集与超集) - issubset(), issuperset()

#------------------------------------------------------------------------------------

issubset() - 返回布尔值,判断Set2是否为Set1的子集。

Set1.issubset(Set2)

issuperset() - 返回布尔值,判断Set2是否为Set1的超集(超集(包含)是与子集(被包含)相对的那个集合)。

Set1.issuperset(Set2)


#-------------------------------------------------------------------------------------------------------------------------

求并集、交集、差集、对称差集 - union(), intersection(), difference(), symmetric_difference()

#-------------------------------------------------------------------------------------------------------------------------

union() - 返回Set1和Set2的并集。

Set1.union(Set2)

intersection() - 返回Set1和Set2的交集。

Set1.intersection(Set2)

difference() - 返回一个差集,Set1 - Set2。

Set1.difference(Set2)

symmetric_difference() - 返回Set1和Set2的对称差集。

Set1.symmetric_difference(Set2)


#-----------------------------------------------------

集合的浅复制 - copy()  对比:对象赋值

#-----------------------------------------------------

copy() - 返回Set1的浅复制集合。

Set1.copy()

对比:对象赋值



5.2 仅面向可变集合的内建函数

#------------------------------------------------------------------------------------------------------------------------------------

更新集合 - update(), intersection_update(), difference_update(), symmetric_difference_update()  

#------------------------------------------------------------------------------------------------------------------------------------

update() - 将Set1更新为Set1和Set2的并集,直接修改Set1,无返回值。

Set1.update(Set2)

intersection_update() - 将Set1更新为Set1和Set2的交集,直接修改Set1,无返回值。

Set1.intersection_update(Set2)

difference_update() - 将Set1更新为Set1和Set2的差集,直接修改Set1,无返回值。

Set1.difference_update(Set2)

symmetric_difference_update() - 将Set1更新为Set1和Set2的对称差集,直接修改Set1,无返回值。

Set1.symmetric_difference_update(Set2)

#----------------------------------------------------------------------------------------------

删除集合的元素 - clear(), pop(), remove(), discard()  对比:del语句

#----------------------------------------------------------------------------------------------

clear() - 清空集合,将原先的集合变为空集合。无返回值。

Set1.clear()

pop() - 随机弹出集合中的一个元素,并返回该元素。修改原集合。若集合为空,则出现KeyError。

Set1.pop()

remove() - 移除集合中指定的元素。修改原集合,无返回值。若指定的元素并非原集合元素,则出现KeyError。

Set1.remove(obj)

discard() - 移除集合中指定的元素。修改原集合,无返回值。若指定的元素并非原集合元素,则什么也不做。

Set1.discard(obj)


#-----------------------------------------

向集合添加元素 - add()

#-----------------------------------------

add() - 向集合中添加一个指定元素,该元素必须可哈希,即可以是数字、字符串、元组,而不能是列表和字典。若该元素已存在于原集合,则无影响,不报错。无返回值,修改原集合。

Set1.add(obj)




https://blog.sciencenet.cn/blog-3031432-1063854.html

上一篇:Matlab:判断空矩阵
下一篇:Python: 扩展库SciPy
收藏 IP: 134.1.1.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 12:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部