赞
踩
组合数据类型包括集合类型及操作、序列类型及操作(元组类型和列表类型)、字典类型及操作
集合是多个元素的无序组合
集合类型与数学中的集合概念一致,数学中的集合是指具有某种特定性质的对象汇总而成的集体,其中组成集合的对象称为该集合的元素
集合元素之间无序,每个元素唯一,不存在相同元素。
集合元素不可更改,不能存在可变数据类型
列表、字典是可变数据类型,整型、浮点型、复数、字符串类型、元组类型等等是不可变数据类型。
集合用大括号{}表示,元素间用逗号分割。
建立集合类型用{ }或set( )
建立空集合类型,只能使用set(),{}不能创建空集合(不包含元素的{}创建的是空字典)
示例代码如下:
A={"python"} #使用{}建立集合 B=set("python123") #使用set()建立集合,使得字符串中的每一个字符单独拆分,变成集合的一个元素 print("A={}\nB={}".format(A,B))
运行界面如下:
(1)并集:S|T,返回一个新集合,包括在集合S和T中的所有元素
代码示例如下:
S={"python"} T=set("python123") A=S|T print("S|T={}".format(A))
运行界面如下:
(2)差集 :S-T,返回一个新集合,包括在集合S但不在T中的元素
代码示例如下:
S={"python"} T=set("python123") A=S-T print("S-T={}".format(A))
运行界面如下:
(3)交集 :S&T,返回一个新集合,包括在集合S和T中的元素
代码示例如下:
S={"python"} T=set("python123") A=S&T print("S&T={}".format(A))
运行界面如下:
(4)补集:S^T,返回一个新集合,包括在集合S和T中的非相同元素
代码示例如下:
S={"python"} T=set("python123") A=S^T print("S^T={}".format(A))
运行界面如下:
代码格式如下:
S={"python"} T=set("python123") A=S<=T B=S<T print("S<=T:{}\nS<T:{}".format(A,B))
运行界面如下:
(6)关系操作符:S>=T或S>T 返回True/False,判断S和T的包含关系
代码格式如下:
S={"python"} T=set("python123") A=S>=T B=S>T print("S>=T:{}\nS>T:{}".format(A,B))
运行界面如下:
代码格式如下:
S={"python"} T=set("python123") S^=T print("S^=T:{}".format(S))
运行界面如下:
(8)增强操作符:S|=T 更新集合S,包括在集合S和T中的所有元素,用S和T并运算之后的结果来更新集合S元素
代码格式如下:
S={"python"} T=set("python123") S|=T print("S|=T:{}".format(S))
运行界面如下:
(9)增强操作符:S-=T 更新集合S,包括在集合S但不在集合T中的元素,用S和T差运算之后的结果来更新集合S元素
代码格式如下:
S={"python"} T=set("python123") S-=T print("S-=T:{}".format(S))
运行界面如下:
(10)增强操作符:S&=T 更新集合S,包括同时在集合S和集合T中的元素,用S和T交运算之后的结果来更新集合S元素
代码格式如下:
S={"python"} T=set("python123") S&=T print("S&T:{}".format(S))
运行界面如下:
代码示例如下:
S={"python"} T=set("python123") a="p" in S print("p in S={}".format(a))
运行界面如下:
(12)X not in S 判断S中元素X,X在集合S中,返回True,否则返回False
代码示例如下:
S={"python"} T=set("python123") a="p" not in S print("p not in S={}".format(a))
运行界面如下:
(13)set(x) 将其他类型变量x转变为集合类型
代码示例如下:
s1=set([1,2,3]) print("T:{}".format(s1))
运行界面如图所示:
通过结果可知,我们将列表类型的s1转变成了集合类型。
A={1,2,3,"rgf","ypl"} for item in A: print(item,end=" ")
运行界面如下:
代码示例如下:
A = {1, 2, 3,"rgf", "ypl"} try: while True<3: print(A.pop(), end=" \n") except KeyError as error: print("出错了,原因:",error)
运行界面如图所示:
(1)len()方法,返回集合s的元素个数。
代码示例如下:
A = {1, 2, 3,"rgf", "ypl"} print(len(A))
运行界面如下:
(2)add()方法,向集合中添加元素。
代码示例如下:
A = {1, 2, 3,"rgf", "ypl"} A.add("LOVE") print(A)
运行界面如图:
(3)remove()方法,删除集合中的元素x,若x不存在则抛出KeyError异常。
代码示例如下:
A = {1, 2, 3, "rgf", "ypl"} A.remove(1) print(A)y
运行界面如下:
(4)discard()方法,删除集合中的元素x,若x不存在不做处理。
代码示例如下:
A = {1, 2, 3, 4, "rgf", "ypl"} A.discard(1) print(A)
运行界面如下:
(5)clear( )方法,清空集合
代码示例如下:
A = {1, 2, 3,4, "rgf", "ypl"} A.clear() print(A)
运行界面如图所示:
(6)copy()方法,复制集合,返回值为集合。
代码示例如下:
A = {1, 2, 3,4, "rgf", "ypl"} B=A.copy() print(B)
运行界面如图:
(7)pop()方法,随机返回集合中的一个元素,同时删除该元素;若集合为空,则抛出KeyError异常。
代码示例如下:
A = {1, 2, 3, "rgf", "ypl"} print(A.pop()) print(A)
运行界面如图:
(8)isdisjoint(),判断集合与集合T是否没有相同的元素,没有返回True,有则返回False。
代码示例如下:
A = {1, 2, 3,4, "rgf", "ypl"} T={1,2,3,4,5} print(A.isdisjoint(T))
运行界面如下:
集合推导式:
集合也可以利用推导式创建,集合推导式的格式与列表推导式的格式相似,区别在于集合推导式外侧为大括号“{}”,具体如下所示:
{exp for x in set if cond} exp为数据,x为数据类型,set为使用的数据,cond为生成要求
以上格式中遍历的可以是集合或其他可迭代对象,利用集合推导式在列表ls的基础上生成只包含偶数元素的集合,示例代码如下:
ls=[1,2,3,4,5,6,7,8,9] s={data for data in ls if data%2==0} print(s)
运行界面如下:
包含关系比较:
代码示例如下:
A = {1, 2, 3,"rgf", "ypl"} a="p" in {1, 2, 3,"rgf", "ypl"} b="rgf" in {1, 2, 3,"rgf", "ypl"} print("1 in A:{},5 in A:{}".format(a,b))
运行界面如下:
数据去重:集合类型所有元素无重复
代码示例如下:
ls=["p","p","y","y",123] s=set(ls) print(s)
运行界面如图:
数据转换:
代码示例如下:
ls=["p","p","y","y",123] s=set(ls) lt=list(s) print(lt)
运行界面如下:
由以上可知,我们通过set()将列表ls转变为集合类型,之后又通过list将集合s转变为列表lt进行输出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。