资讯专栏INFORMATION COLUMN

Python数据类型 - set 集合

Bryan / 2080人阅读

摘要:集合在中,是基本数据类型的一种集合类型。数组是一组值,不包含重复元素。数组是可变的无序的有限的集合,其元素是唯一的不可变的。函数,清空,集合仍存在,只不过为空集合。判断集合是否为某集合的父集返回。

set 集合
在Python中,set是基本数据类型的一种集合类型。

set 数组是一组key值,不包含重复元素。

set 数组是可变的、无序的、有限的集合,其元素是唯一的、不可变的。

set 数组没有(不支持)索引和切片操作。

set有可变集合(set)和不可变集合(frozenset)两种,其中

set:可以原地修改,或者说是可变的,也可以说是 unhashable(不可哈希)的。

frozenset:是一个被“冻结”的集合,不能原地修改,是 hashable(可哈希)的。

一、set的创建 (1)直接创建 方式:将所有项(元素)放在花括号“{}”内,以逗号“,”分隔。 集合元素:集合可以有任意数量的元素,它们可以是不同的类型(例如:数字、元组、字符串等)。但是,集合不能有可变元素(例如:列表、集合或字典)。
>>> a = {1,2,3,4,"a"}
>>> type(a)
(2)通过set()、frozenset()创建 python中,set类是在python的sets模块中,不需要导入sets模块可以直接创建集合。
>>>set("boy")
set(["y", "b", "o"])
(3)创建空的set集合

创建空集合比较特殊。
在 Python 中,空花括号“{}”用于创建空字典。要创建一个没有任何元素的集合,使用set()函数(不要包含任何参数)。

>>> a = set()
>>> a
set()
>>> b = {}
>>> type(a),type(b)
(, )
ps:创建set例子


二、set操作 (1) in

in关键字,判断某key是否在set中,并返回True or False。

>>> s = set([1,2,3,2,1,3,4,5])
>>> s
{1, 2, 3, 4, 5}
(2)add(key)

add()方法:添加元素到set中。可以重复添加,but没有效果,因为set中元素唯一性,会过滤重复的元素。

>>> s.add(6)
>>> s
{1, 2, 3, 4, 5, 6}
(3)update()

update():将参数添加到set中并返回一个set,自动过滤重复元素。
update()方法既可以带一个单参数,也可以带一个or多个set,就好像多次调用add()。

(4)remove(key)、discard(key)

remove(key)、discard(key)删除指定元素。
区别:其中remove()删除不存在的key时会返回报错,而discard()不会。

>>> a_set = {1,2,3,6,10,15,21,28,36,45}
>>> a_set
{1, 2, 3, 36, 6, 10, 45, 15, 21, 28}    # 并不一定是按填写的顺序
>>> a_set.discard(10)
>>> a_set
{1, 2, 3, 36, 6, 45, 15, 21, 28}
>>> a_set.remove(21)
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 21
(5)pop()

pop()函数不需要带任何参数,将set中的第一个元素删除。

>>> a_set.pop()
1
>>> a_set
{2, 3, 36, 6, 45, 15, 28}
(6)clear()

clear()函数,清空set,集合仍存在,只不过为空集合。

>>> a_set.clear()
>>> a_set
set()
(7)del 删除一个元素

语法形式:del set_name


三、集合操作

set可以看成数学意义上的无序、无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作。

交集:两个set集合之间所有的元素,操作符号为“&”或者intersection()函数;

并集:两个set集合之间共有的元素,操作符号为“|”或者union()函数;

差集:在a集合中但不在b集合中,方法为difference()函数;

symmetric_difference():在a集合中不在b集合中 and 在b集合中不在a集合中。

举几个例子:
>>> s1 =set([1,3,6])
>>> s & s1        # and
{1, 3, 6}
>>> s | s1         # or
{1, 2, 3, 5, 6}
>>> a_set = {1,2,3,4,5,6,7,8,9,0}
>>> b_set = {1,2,3,4,5,11,12,13,14,15}
>>> a_set.union(b_set)             # 并集|,或者直接a_set | b_set
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15}
>>> a_set.intersection(b_set)     # 交集&,或者直接使用 a_set & b_set
{1, 2, 3, 4, 5}
>>> a_set.difference(b_set)     # 差集,在a中但不在b中
{0, 6, 7, 8, 9}
>>> a_set.symmetric_difference(b_set) #在a中不在b中 and 在b中不在a中
{0, 6, 7, 8, 9, 11, 12, 13, 14, 15}

issubset():判断集合是否为某集合的子集,返回True or False。

issuperset():判断集合是否为某集合的父集,返回True or False。


❤ thanks for watching, keep on updating...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42265.html

相关文章

  • 黑教小本本---python 基础数据类型相关整理

    摘要:基础数据类型版本分为余版本,目前同时发行。对中文支持较差,如果要在程序中使用中文字符或中文变量,则需要在源程序的第一行增加,当然别忘了将源文件保存为字符集。运算符左右两边都是布尔值,输出结果也为 python 基础数据类型 python版本分为2.0余3.0版本,目前同时发行。以后3.0版本将成为主流地址https://www.python.org/ 编辑器 自带编辑器IDLE【可...

    CodeSheep 评论0 收藏0
  • python-数据类型set集合

    摘要:集合是中一种基本数据类型,它分为可变集合和不可变集合两种。小于和大于意味着两个集合在比较时不能相等。等于号允许非严格定义的子集和超集。函数的作用是判断集合是否是集合的子集,如果是返回,否则返回。 集合set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删...

    mylxsw 评论0 收藏0
  • [零基础学Python]一二三,集合

    摘要:最简单的说法,即是在最原始的集合论朴素集合论中的定义,集合就是一堆东西。若然是集合的元素,记作。这里对被数学家们称为直观的或朴素的集合论进行一个简短而基本的介绍更详细的分析可见朴素集合论。对集合进行严格的公理推导可见公理化集合论。 回顾一下已经了解的数据类型:int/str/bool/list/dict/tuple 还真的不少了. 不过,python是一个发展的语言,没准以后还出别...

    CastlePeaK 评论0 收藏0
  • python3学习笔记(2)----python数据类型

    摘要:的基本数据类型中的变量不需要声明。在里,只有一种整数类型,表示为长整型,没有中的。字符串的截取的语法格式如下变量头下标尾下标索引值以为开始值,为从末尾的开始位置。列表列表是中使用最频繁的数据类型。注意构造包含或个元素的元组的特殊语法规则。 1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,...

    陆斌 评论0 收藏0
  • Python零基础到入门】Python基础语法篇——基本数据类型【文末送书】

    摘要:布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有两种值的数据类型可以通过内置的函数查询,例如还可以用来判断和的区别在于不会认为子类是一种父类类型。会认为子类是一种父类类型。基本功能是进行成员关系测试和删除重复元素。 ...

    Winer 评论0 收藏0

发表评论

0条评论

Bryan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<