python(10)集合
写在前面的话:码字不易,点个赞关注一下作者再走吧[呲牙]
======================================================
python中集合的概念与数学中集合的概念一致,一般用一对花括号或set进行定义,集合的元素可以是整数、浮点数、字符串或元组,但不能是列表、集合或字典。集合的定义有以下几种形式: a={2,3.14,"python",(4,6,"C")}#定义一个集合,共有4个元素,元素类型分别是整数、浮点数、字符串和元组 a#查看变量a的值时,我们发现输出的顺序与定义的顺序并不致,这是集合的特征之一,元素是无序的,因此它不能做切片操作。 {(4, 6, "C"), 2, 3.14, "python"} ============================================== b=set("人生苦短,我学python")#用set()函数定义了一个集合,当参数是字符串时,将每个字符作为集合的元素 b {"h", "n", "o", "p", "t", "y", "人", "学", "我", "生", "短", "苦", ","} =============================================== #当set()函数的参数是列表时,将方括号去掉,列表元素直接作为集合元素,我们发现列表中有2个6,但输出时只有1个6,因为集合的元素具有不可重复性,我们可以利用这个特性实现元素去重操作 c=set([345,6,35,4,6,353]) c {4, 6, 35, 345, 353} ============================================== #将元组作为set()函数的参数,输出时去掉圆括号 d=set(("天生我材必有用","千金散尽还复来")) d {"千金散尽还复来", "天生我材必有用"} =============================================
在数学中集合有并集、交集、差集、补集等操作,这些操作可以非常便捷地用python实现。 python=set(["张三","王八","赵六"]) #表示选修了python的名单 c=set(["王八","陈十一"]) #表示选修了c的名单 python&c #交集,表示同时选修python与c {"王八"} ================================================ In [4]: python|c #并集,表示选了python或C Out[4]: {"张三", "王八", "赵六", "陈十一"} ========================================== In [5]: python-c #差集,常用于删除元素,表示选了python但没选c Out[5]: {"张三", "赵六"} =================================================== In [6]: python^c #对称差,输出只选一门课的学生,等价于并集-交集 Out[6]: {"张三", "赵六", "陈十一"} ======================================= In [7]: (python|c)-(python&c) #同python^c Out[7]: {"张三", "赵六", "陈十一"} ======================================== In [8]: python<=c #集合python若是集合c的真子集则返回True,否则返回False Out[8]: False In [9]: python>=c #集合c若是集合python的真子集则返回True,否则返回False Out[9]: False
集合还有一些常用的操作函数或方法: In [24]: a={1,2,3} In [25]: a.add(4) #添加元素 In [26]: a Out[26]: {1, 2, 3, 4} In [27]: a.pop() #随机返回一个元素,并删除 Out[27]: 1 In [28]: a Out[28]: {2, 3, 4} In [29]: a.discard(3) #删除元素,若无该元素不报错 In [30]: a Out[30]: {2, 4} In [31]: a.remove(5) #删除元素,若无该元素报错 Traceback (most recent call last): File "", line 1, in a.remove(5) KeyError: 5 In [32]: a Out[32]: {2, 4} In [33]: len(a) #元素个数,即集合长度 Out[33]: 2 In [34]: 3 in a Out[34]: False In [35]: 3 not in a Out[35]: True In [36]: max(a) Out[36]: 4 In [37]: min(a) Out[37]: 2 In [38]: sum(a) Out[38]: 6 In [39]: sorted(a) #升序排列 Out[39]: [2, 4] In [40]: a.clear() #清空集合 In [41]: a Out[41]: set() #空集