在数学中设定理论涉及对象组。它描述对象与集合或组的关系。python也实现了作为标准python模块的集合。集合模块提供用于构造和操作独特元素的无序集合的类。
常见用途包括会员测试,从序列中删除重复,以及计算交集,联合,差异和对称差异等集合的标准数学运算。如果你还在苦恼怎么入门python,小编有个建议,可以加小编弄的一个python交流基地,大家可以进入交流基地:58937142,里面新手入门资料,可以说从零到项目实战,都是可以免费获取的,还有程序员大牛为各位免费解答问题,热心肠的小伙伴也是蛮多的。不失为是一个交流的的好地方,小编在这里邀请大家加入我的大家庭。欢迎你的到来。一起交流学习!共同进步!小编等你!
非运算符版本如union(),intersection(),difference(),symmetric_difference(),issubset(),issuperset()可以采用任何可迭代的参数。因此,建议使用非运算符版本来显式更好的阅读。
创建一套
可以使用{}或使用set()创建集合,而使用set始终使用'set'是显式的和更好的可读性。
开发商 = { 'alex','dinesh','rajesh','maya','suresh','yuva' }developers_list = [ 'alex','dinesh','rajesh','maya','suresh','yuva' ] developers = set(developers_list)#set方法需要一个迭代
php_developers = set([ 'dinesh','rajesh','maya','suresh' ]) python_developers = set([ 'maya','siva','suresh','yuva' ])
现在,我们有两套php开发人员和python开发人员。
基本操作
total_members = len(python_developers) 打印 “{}人们知道python” .format(total_members)为开发在 python_developers: 打印开发如果 “玛雅” 在 python_developers: 打印 “玛雅是python_developers的成员”如果 “至尊” 未 在 python_developers: 打印 “magesh不是python_developers的成员”
联合操作使用集合
联盟给开发人员知道php或python或两者兼而有之。
#知道php或python或者两者的人#使用union()方法knows_php_or_python_or_both = php_developers.union(python_developers)
交点操作使用集合
交叉点只给出知道php和python的开发人员。
#知道php和python的人#使用intersection()方法both_php_and_python = php_developers.intersection(python_developers)
差异操作使用set
php开发人员和python开发人员的差异只给了那些知道php的开发人员。
#个人只知道php #使用difference()方法diff = php_developers.difference(python_developers)
对称差分运算使用集合
对称差异给开发人员只知道php或python,而不是两者。
#只知道php或python但不是两者的人#using symmetric_difference()方法symmetric_diff = php_developers.symmetric_difference(python_developers)
技巧和窍门
在字符串中查找独特的字母
set('hello world')#set([ '','e','d','h','l','o','r','w' ])
在列表/元组中删除/查找重复项
l = [ 'a', 'b', 'c', 'd', 'a', 'b' ] 组(l)#组([ 'a', 'c', 'b', 'd' ])
检查子集
issubset()检查集合中的所有项是否存在于其他集合或迭代中。
#是子集
检查是否超集
issuperset()检查是否存在给定的iterable中的所有项目。
#是超集
检查另一个列表中是否存在列表
list1 = [ 'a','b' ] set 1 = set(list1)