–本篇主要讲述 Python数据类型之:集合–
“优雅” “明确” “简单”
Python
Python中的数据类型:集合(set)。
在Python中,集合数据类型英文称作:“ set ”。
集合是各种数据的一个集合,在Python中的定义则是:
使用集合类
set()
来创建,set 接收一个可迭代对象作为参数;12345678910>>> s = set(("a",1,2,"b"))>>> s{1, 'a', 2, 'b'}>>> type(s)<class 'set'>>>> s = set("abc")>>> s{'a', 'b', 'c'}>>> type(s)<class 'set'>使用花括号
{ }
来创建;12345>>> s={1,2,3,4}>>> s{1, 2, 3, 4}>>> type(s)<class 'set'>
值得注意的是:
如果是创建一个空的集合,那么将只能够使用 set()
进行创建!
如果是创建一个空的集合,那么将只能够使用 set()
进行创建!
如果是创建一个空的集合,那么将只能够使用 set()
进行创建!
为什么?因为单独使用花括号 { }
构建时,我们构建的是空的字典表!
让我们看一看验证结果:
相关的方法等示例展示,均以Python的交互式环境演示为主!
集合数据类型的特性
- 集合是一个无序的,不重复的数据组合;
- 可进行关系测试,测试两组数据之前的交集、差集、并集等关系;
- 由于无序,因此集合不支持索引、切片等操作;
关系运算
+
加法操作在集合类型中是不被支持的!-
两集合的差集(减数集合中有,但是在被减数集合中没有的数据)1234>>> s = {1,2,3}>>> q = {2,3,4}>>> s - q{1}|
两集合之间的并集(其结果自然也是去重后的结果)12345678>>> s = {1,2,3}>>> q = {4,5,6}>>> s | q{1, 2, 3, 4, 5, 6}>>> s = {1,2,3}>>> q = {2,3,4}>>> s | q{1, 2, 3, 4}&
两集合之间的交集12345678>>> s = {1,2,3}>>> q = {4,5,6}>>> s & qset()>>> s = {1,2,3}>>> q = {2,3,4}>>> s & q{2, 3}^
两集合的对称差集(结果数据在两集合中不同时存在)12345678>>> s = {1,2,3}>>> q = {4,5,6}>>> s ^ q{1, 2, 3, 4, 5, 6}>>> s = {1,2,3}>>> q = {2,3,4}>>> s ^ q{1, 4}in
成员运算符 - 判断指定元素是否存在于集合内,存在则为 True, 反之为 False12345>>> s = {1,2,3}>>> 1 in sTrue>>> 4 in sFalsenot in
成员运算符 - 判断指定元素是否存在于集合内,不存在则为 True, 反之为 False12345>>> s = {1,2,3}>>> 1 not in sFalse>>> 4 not in sTrue
集合数据类型的常见内建函数
add( )
向集合内添加单个元素,如果存在则不起作用123456789>>> s.add(4)>>> s{1, 2, 3, 4}>>> s.add((5,6))>>> s{1, 2, 3, 4, (5, 6)}>>> s.add("abc")>>> s{1, 2, 3, 4, (5, 6), 'abc'}clear( )
清空集合123456>>> s = {1, 2, 3}>>> s{1, 2, 3}>>> s.clear()>>> sset()copy( )
创建集合的副本1234>>> s = {1, 2, 3}>>> q = s.copy()>>> q{1, 2, 3}difference( )
差集(当前集合有而其他集合没有的差集)123456>>> s = {1, 2, 3}>>> q = {2, 3}>>> s.difference(q){1}>>> q.difference(s)set()difference_update( )
从当前集合内删除所有与其他集合内相同的数据元素1234567>>> s = {1, 2, 3}>>> q = {2, 3}>>> s{1, 2, 3}>>> s.difference_update(q)>>> s{1}intersection( )
交集12345>>> s = {1, 2, 3}>>> q = {2, 3}>>> r = s.intersection(q)>>> r{2, 3}union( )
并集12345>>> s = {1, 2, 3}>>> q = {2, 3, 4}>>> r = s.union(q)>>> r{1, 2, 3, 4}remove( )
删除集合内的某个指定元素1234>>> s = {1, 2, 3}>>> s.remove(1)>>> s{2, 3}update( )
集合内添加多个元素(注意观察与add()
的区别)1234>>> s = {1, 2, 3}>>> s.update((4,5,6))>>> s{1, 2, 3, 4, 5, 6}
更多关于集合数据类型的内建函数方法,可在 Python 交互式环境下,使用:
help(set)
进行查看,或查阅官方文档:Python 官方文档。