博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-集合
阅读量:4917 次
发布时间:2019-06-11

本文共 3558 字,大约阅读时间需要 11 分钟。

集合的定义:

   集合成为set和其他语言类似,是一个无序不重复的元素集。

   功能包括:关系的测试、消除重复的元素;集合还支持 交集、并集、差集、对称差集

   备注:由于集合是无序的,所以不支持 索引、分片和其它序列的操作

下面我们来做一下实操:

   定义一个集合

#集合s = {3,2,5,8,9}            #直接定义s1 = set([1,3,4,6,7])      #用set函数来定义print(s)print(s1)输出:C:\Python35\python.exe D:/linux/python/all_test/总练习.py{
8, 9, 2, 3, 5} #集合的无序{1, 3, 4, 6, 7}

  集合的操作

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,3,4,6,7])      #用set函数来定义s.add(10)                  #添加一个集合元素print(s)print(s1)# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {2, 3, 5, 8, 9, 10}     #这里我们可以看出添加了一个10的元素并去重了# {1, 3, 4, 6, 7}s3 = frozenset(s1)      #使用此函数是把集合s1封闭了并赋值给s3print(s3)s3.aad(10)print(s3)# 输出:# {1, 3, 4, 6, 7}# Traceback (most recent call last):# frozenset({1, 3, 4, 6, 7})#   File "D:/linux/python/all_test/总练习.py", line 25, in 
# s3.aad(10)# AttributeError: 'frozenset' object has no attribute 'aad' #这里提示不能添加,因为s3封闭了print(s)s.update([11,12]) #一次性增加两个元素print(s)# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {2, 3, 5, 8, 9, 10}# {1, 3, 4, 6, 7}# frozenset({1, 3, 4, 6, 7})# {2, 3, 5, 8, 9, 10}# {2, 3, 5, 8, 9, 10, 11, 12} #一次性增加了两个元素

集合的元素删除

s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素print(s)s.remove(5)   #删除一个集合元素print(s)# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {8, 9, 2, 3, 5}# {8, 9, 2, 3}    #我们可以看出少了5元素

集合的长度

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素print(len(s))       #备注会自动去掉重复的元素# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# 5

集合的in和not in

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素print(3 in s)       #在s里返回Trueprint(1 in s)       #不在返回Flaseprint(3 not in s)   #不在返回True在返回Flaseprint(1 not in s)   #不在返回True在返回Flase# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# True# False# False# True

集合的包含

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,2])s3 = {2,5}print(s1.issubset(s))    #测试是否 s1 中的每一个元素都在s 中,在为Ture不在为Flase  print(s3.issubset(s))    #测试是否 s3 中的每一个元素都在s 中,在为Ture不在为Flase#也可以用s1 > s# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# False# True

集合的union(合集)

s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,2])s3 = {2,5,10}print(s.union(s1))   #返回一个新的 set 包含 s 和 s1 中的每一个元素,也就是合集print(s | s3)
# 输出: # C:\Python35\python.exe D:/linux/python/all_test/总练习.py # {1, 2, 3, 5, 8, 9} # {2, 3, 5, 8, 9, 10}

集合的inttersection(交集)

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,2])s3 = {2,5,10}print(s.intersection(s1))   #返回一个新的 set 包含 s 和 s1 中的公共元素,也就是交集print(s & s3)        #返回一个新的 set 包含 s 和 s1 中的公共元素,也就是交集# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {2}# {2, 5}

集合的difference

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,2])s3 = {2,5,10}print(s.difference(s1))   #返回一个新的 set 包含 s有则t 中没有的元素print(s - s3)             #返回一个新的 set 包含 s有则t 中没有的元素# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {8, 9, 3, 5}# {8, 9, 3}

集合的symmetric_difference

#集合s = {3,2,5,8,9,9,8}            #直接定义,这里我们定义的有重复元素s1 = set([1,2])s3 = {2,5,10}print(s.symmetric_difference(s1))   #返回一个新的 set 包含 s有则s1 不重复的元素print(s ^ s3)             #返回一个新的 set 包含 s有则s1 不重复的元素# 输出:# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {1, 3, 5, 8, 9}# {8, 9, 10, 3}

集合的copy

s1 = s.copy()    #set “s”的一个浅复制print(s)        print(s1)print(id(s))print(id(s1))# C:\Python35\python.exe D:/linux/python/all_test/总练习.py# {8, 9, 2, 3, 5}# {8, 9, 2, 3, 5}# 1763954978600     #指向的内存不同# 1763955004360

这里集合就说完了

转载于:https://www.cnblogs.com/Plynn/p/6421410.html

你可能感兴趣的文章
开发使用Node.js的一个小技巧
查看>>
Mike的农场 BZOJ4177
查看>>
IT职场人生系列
查看>>
如何指定个别属性进行transition过渡
查看>>
Python爬虫基础--分布式爬取贝壳网房屋信息(Client)
查看>>
jmeter(十二)关联之正则表达式提取器
查看>>
win7系统复制文件到u盘提示文件过大怎么办
查看>>
The path "" is not valid path to the gcc binary.
查看>>
KMP算法
查看>>
NBUT [1369] A Breaking Computer
查看>>
SonarQube4.4+Jenkins进行代码检查实例之三-单元測试分析
查看>>
【转载】appium自动化环境搭建
查看>>
jsp编译、执行过程
查看>>
NOIP2017游记
查看>>
关于js的在ie和Firefox的差别
查看>>
node-webkit无边框窗口用纯JS实现拖动改变大小
查看>>
Extjs grid combo
查看>>
获取<考试>博文密码!o(*≧▽≦)ツ
查看>>
学习进度条
查看>>
leetcode-Subsets II-90
查看>>