首页 > 编程语言 >Python入门(8)——集合

Python入门(8)——集合

时间:2022-11-25 14:04:43浏览次数:41  
标签:入门 Python 元素 update print numbers 集合 方法



集合的创建


    集合是由不重复元素组成的无序容器。创建集合用 { } 大括号或 set( ) 函数。注意,创建空集合只能用 set( ) ,不能用 { } , { } 创建的是空字典。下面的例子演示了如何创建一个集合以及创建空集合。

>>> numbers = {0, 1, 2, 3, 4, 5}    # 用大括号创建集合
>>> print(numbers)
{0, 1, 2, 3, 4, 5}
>>> type(numbers)
<class 'set'>


>>> letters = set('abcdefg') # 用set()函数创建集合
>>> print(letters)
{'g', 'd', 'b', 'c', 'f', 'e', 'a'}
>>> type(letters)
<class 'set'>


>>> emptySet = set() # 创建空集合
>>> print(emptySet)
set()
>>> type(emptySet)
<class 'set'>





往集合里添加元素


    使用 add( ) 方法,可以往集合里添加元素。因为集合是存储无序不重复元素的容器,所以当要存入的元素已经在集合里面时,不做任何操作;当元素不存在集合里面时,才进行插入操作。下面的例子演示了如何把元素添加到集合里面。

>>> numbers = {0, 1, 2}
>>> print(numbers)
{0, 1, 2}
>>> numbers.add(3) # 往集合里面添加元素3
>>> print(numbers) # 元素3之前未在集合里,添加成功
{0, 1, 2, 3}
>>> numbers.add(0) # 往集合里面添加元素0
>>> print(numbers) # 元素0已经在集合里,不进行添加
{0, 1, 2, 3}


    当然,使用 update( ) 方法,也可以往集合里添加元素。用法与 add( ) 方法类似,但 add( ) 方法不能往集合里面添加列表、元组、字典等元素,而 update( ) 方法可以。下面的例子演示了如何把列表添加到集合里面。

>>> numbers = {0, 1, 2}
>>> numbers.add([3, 4]) # 使用add()方法添加不了列表
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
numbers.add([3, 4])
TypeError: unhashable type: 'list'
>>> numbers.update([3, 4]) # 使用update()方法可以添加列表
>>> print(numbers)
{0, 1, 2, 3, 4}




从集合中删除指定元素


    使用 remove( ) 方法,可以将指定元素从集合中删除。如果集合中不存在此元素,则会报错。

>>> numbers = {0, 1, 2}
>>> numbers.remove(0) # 从集合中删除元素0
>>> print(numbers)
{1, 2}
>>> numbers.remove(3) # 从集合中删除不存在的元素则报错
Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
numbers.remove(3)
KeyError: 3


    当然,我们更推荐使用 discard( ) 方法删除集合中指定元素,因为如果集合中不存在此元素,系统不会报错。

>>> numbers = {0, 1, 2}
>>> numbers.discard(0) # 从集合中删除元素0
>>> print(numbers)
{1, 2}
>>> numbers.discard(3) # 从集合中删除不存在的元素没有报错
>>> print(numbers)
{1, 2}




从集合中删除元素并返回其值


    使用 pop( ) 方法,可以将集合中的某个元素删除,并且返回其值。如果集合为空,则会报错。

    1. 如果集合的元素都是数字,删除时,删掉的是最小的数字,其余数字升序排列;

    2. 如果集合的元素都是非数字,删除时,删掉的是随机的元素,其余元素随机排列。

    3. 如果集合里既有数字又有非数字元素,删除时:若删掉的是数字,则一定是删掉了最小的,其他数字升序排列,非数字元素随机排列;若删掉的非数字,则一定是随机删掉了一个,其他数字升序排列,非数字元素随机排列。

>>> numbers = {0, 1, 2, 3, 4, 5, 6}
>>> x = numbers.pop()
>>> print(x)
0
>>> print(numbers)
{1, 2, 3, 4, 5, 6}




获取集合中元素的个数


    使用 len( ) 函数,可以求得集合中元素的个数。

>>> numbers = {0, 1, 2, 3, 4, 5, 6}
>>> len(numbers)
7




删除集合中的所有元素


    使用 clear( ) 方法,可以将集合元素清空。

>>> numbers = {0, 1, 2, 3, 4, 5, 6}
>>> numbers.clear()
>>> print(numbers)
set()



判断元素是否在集合中


    使用 in 或者 not in 操作符,可以判断元素是否在指定集合中。下面的例子演示了如何判断元素是否在集合中。

>>> numbers = {0, 1, 2, 3, 4, 5, 6}
>>> 1 in numbers
True
>>> 10 in numbers
False



集合的复制


    使用 copy( ) 方法,可以复制集合。下面的例子演示了如何复制集合。

>>> numbers = {0, 1, 2}
>>> x = numbers.copy()
>>> print(x)
{0, 1, 2}
>>> id(x)
2122843999136
>>> id(numbers)
2122843998912



求并集


    使用 union( ) 方法可以求出多个集合的并集,重复的元素只会出现一次。下面的例子演示了如何求出两个集合的并集。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> z = x.union(y)
>>> print(z)
{0, 1, 2, 3, 4, 5}



求差集


    使用 difference( ) 方法可以求出两个集合的差集,即返回的集合元素包含在调用该方法的集合中而不包含在作为参数的集合中。下面的例子演示了如何求出两个集合的差集。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> z = x.difference(y)
>>> print(z)
{0, 1}


    使用 difference_update( ) 方法也可以求出两个集合的差集,只不过这个方法会直接对原始集合进行操作,求得的差集会直接覆盖原始集合。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> x.difference_update(y)
>>> print(x)
{0, 1}



求交集


    使用 intersection( ) 方法可以求出多个集合的交集,即返回的集合元素既包含在调用该方法的集合中又包含在作为参数的集合中。下面的例子演示了如何求出两个集合的交集。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> z = x.intersection(y)
>>> print(z)
{2, 3}


    使用 intersection_update( ) 方法也可以求出多个集合的交集,只不过这个方法会直接对原始集合进行操作,求得的交集会直接覆盖原始集合。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> x.intersection_update(y)
>>> print(x)
{2, 3}



求对称差集


    使用 symmetric_difference( ) 方法可以求对称差集,即返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> z = x.symmetric_difference(y)
>>> print(z)
{0, 1, 4, 5}


    使用 symmetric_difference_update( ) 方法也求对称差集,只不过这个方法会直接对原始集合进行操作,求得的对称差集会直接覆盖原始集合。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> x.symmetric_difference_update(y)
>>> print(x)
{0, 1, 4, 5}



判断两个集合中是否存在相同的元素


    使用 isdisjoint( ) 方法可以判断两个集合中是否存在相同的元素。如果不存在相同的元素,则返回True;存在相同的元素,则返回False。

>>> x = {0, 1, 2, 3}
>>> y = {2, 3, 4, 5}
>>> x.isdisjoint(y)
False
>>> a = {0, 1}
>>> b = {2, 3}
>>> a.isdisjoint(b)
True



判断是否为子集


    使用 issubset( ) 方法可以判断当前集合是否为参数集合的子集。如果当前集合是参数集合的子集,则返回True;否则返回False。

>>> x = {0, 1}
>>> y = {0, 1, 2, 3}
>>> x.issubset(y)
True



判断是否为超集


    使用 issuperset( ) 方法可以判断当前集合是否为参数集合的超集。如果当前集合是参数集合的超集,则返回True;否则返回False。

>>> x = {0, 1}
>>> y = {0, 1, 2, 3}
>>> y.issuperset(x)
True




标签:入门,Python,元素,update,print,numbers,集合,方法
From: https://blog.51cto.com/u_15891283/5886627

相关文章

  • 最全的Python海龟绘图总结
    在Python中使用海龟绘图,需要导入相应的模块,那么什么是模块呢?逻辑上来说模块就是一组功能的组合;实质上一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上......
  • Python入门(7)——元组与字典
    元组元组的定义    不可修改的列表称为元组。元组定义与列表定义的区别在于列表使用 [] 标识,而元组使用 () 标识。严格地说,元组是由逗号 , 标识的,圆括号只是让......
  • Python入门(5)——分支与循环
    使用功能更强大的IDEPyCharm是一款功能强大的Python编辑器,具有跨平台性。学习分支语句及循环语句,为了我们调试方便,我们后期选择使用PyCharm,PyCharm可以直接到官网下载......
  • Python入门(6)——列表
    列表的定义列表是由一系列按特定顺序排列的元素组成。列表可以包含不同类型的元素。列表内元素的值可以重复。列表通常用单词名称的复数表示。列表用方括号 [] 表示,元素......
  • Python入门(3)——基本数据类型及运算符
    常见的几种基本数据类型python是弱类型语言,相对于强类型语言,它不需要声明变量的类型。在Python中一切都是对象。可以使用id()函数查看此对象的id。Python中的数据类型很多,而......
  • Python入门(4)——最全的字符串操作
    修改字符串大小写title():把字符串中每个单词首字母改为大写。upper():把字符串中所有字符改为大写。lower():把字符串中所有字符改为小写。>>>'theintroductiontopython'.......
  • Python入门(2)——变量与常量
    IDLE-Python集成开发环境刚开始学习Python,我们可以直接使用Python自带的IDE——IDLE进行编程。在Windows开始菜单中,搜索IDLE,打开即可进行Python编程。接下来一段时间,我们先......
  • Python入门(1)——搭建环境
    Life is short,you need Python.--BruceEckel​“人生苦短,我用Python”Python由荷兰数学和计算机科学研究学会的GuidovanRossum于1990 年代初设计。因其简单易学,如......
  • Python 太难懂?火山引擎数智平台这款产品可以了解一下!
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群  「自学Python?一般人我还是劝你算了吧!」在国内知识分享平台「知......
  • ubuntu/usr/bin/env:python:没有这样的文件或目录
    /usr/bin/env:‘python’:Nosuchfileordirectory可能的解决方案#1如果未安装Python3,请安装它:apt-getinstallpython3可能的解决方案#2如果已安装Pyth......