当前位置 : 主页 > 编程语言 > python >

Python集合类型的操作与应用

来源:互联网 收集:自由互联 发布时间:2021-06-25
Python 集合类型的操作与应用 一、 Python 集合类型 Python 中的 集合 类型 是一个 包含 0 个或多个数据项的 无序的 、 不重复的数据组合 ,其中,元素类型只能是固定数据类型,如整数、

Python集合类型的操作与应用

一、Python集合类型

Python中的集合类型是一个包含0个或多个数据项的无序的不重复的数据组合,其中,元素类型只能是固定数据类型,如整数、浮点数、字符串、元组等,相反,如列表、字典和集合类型本身都是可变数据类型,因此不能作为集合元素使用。

 

1.无序性

集合是无序组合,没有索引和位置的概念,不能分片,集合中的元素可以动态增加或删除。集合用大括号{}”表示。

s={1,2,3,a,b,(5,c)}

print(s)

由上例可知,集合元素打印后的顺序和定义顺序可以不同。

 

2.不重复性

集合元素是独一无二的,使用集合类型可以过滤掉重复元素。set(x)函数用于生成集合,输入任意组合数据类型的参数,返回一个无序不重复的集合。

s=set(omg)

print(s)

 

 

s=set((human,animal,water,oil))

print(s)

 

 

 

二、集合类型的关系操作

 

1.S-TS.difference(T)ST的差集。返回一个新集合,包括在集合S中但不在集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S-T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.difference(T))

 

 

S={1,2,3,4}

T={2,3,4,5}

print(T-S)

或者

S={1,2,3,4}

T={2,3,4,5}

print(T.difference(S))

 

 

2.S&TS.intersection(T)ST的交集。返回一个新集合,包括同时在集合S和集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S&T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.intersection(T))

 

 

3.S|TS.union(T)ST的并集。返回一个新集合,包括集合S和集合T中的所有元素。

S={1,2,3,4}

T={2,3,4,5}

print(S|T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.union(T))

 

 

4.S^TS.symmetric_difference(T)ST的对等差集,包括集合S和集合T中的元素,但不包括同时在其中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S^T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.symmetric_difference(T))

 

 

5.S<=TS.issubset(T):如果ST相同或ST的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集。

S={1,2,3}

T={1,2,3,4,5}

print(S<=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issubset(T))

 

 

6.S>=TS.issuperset(T):如果ST相同或ST的父集,返回True,否则返回False,可以用S>T判断S是否是T的真父集。

S={1,2,3}

T={1,2,3,4,5}

print(S>=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issuperset(T))

 

 

三、集合类型的操作函数或方法

1.S.add(x):如果数据项x不在集合S中,将x增加到s中。

S=set((1,2,3,omg,ok,yes))

S.add(4)

print(S)

 

 

2.S.clear():移除S中的所有数据项。

S=set((1,2,3,omg,ok,yes))

S.clear()

print(S)

 

 

3.S.copy():返回集合S的一个副本。

S=set((1,2,3,omg,ok,yes))

S.copy()

print(S)

 

 

4.S.pop():随机返回集合中S的一个元素,如果S为空,产生KeyError异常。

S=set((1,2,3,omg,ok,yes))

T=S.pop()

print(T)

 

 

#打印除被pop出的元素以外的所有元素的集合

S=set((1,2,3,omg,ok,yes))

S.pop()

print(S)

 

 

#如果S为空,产生KeyError异常

S=set(())

T=S.pop()

print(T)

 

 

5.S.discard(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,不报错。

S=set((1,2,3,omg,ok,yes))

S.discard(omg)

print(S)

 

 

#如果x不在集合S中,不报错

S=set((1,2,3,omg,ok,yes))

S.discard(python)

print(S)

 

 

6.S.remove(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,产生KeyError异常。

S=set((1,2,3,omg,ok,yes))

S.remove(omg)

print(S)

 

 

#如果x不在集合S中,产生KeyError异常

S=set((1,2,3,omg,ok,yes))

S.remove(python)

print(S)

 

 

7.S.isdisjoint(T):如果集合S与集合T没有相同元素,返回True,否则返回False

S=set((1,2,3,omg,ok,yes))

T=set((4,5,6,do,true))

print(S.isdisjoint(T))

 

S=set((1,2,3,omg,ok,yes))

T=set((1,2,5,6,do,ok,true))

print(S.isdisjoint(T))

 

 

8.len(S):返回集合S的元素个数。

S=set((1,2,3,omg,ok,yes))

print(len(S))

 

 

9.x in S:如果x是集合S的元素,返回True,否则返回False

S=set((1,2,3,omg,ok,yes))

print(3 in S)

 

S=set((1,2,3,omg,ok,yes))

print(python in S)

 

 

10.x not in S:如果x不是集合S的元素,返回True,否则返回False

S=set((1,2,3,omg,ok,yes))

print(3 not in S)

 

 

S=set((1,2,3,omg,ok,yes))

print(python not in S)

 

 

集合类型主要用于成员关系测试、元素去重和删除数据项。

1.成员关系测试

S={1,2,3,omg,ok,yes}

T=omg in S

print(T)

 

 

2.元素去重

S={1,2,3,omg,ok,yes,2,omg}

T=set(S)

print(T)

 

 

3.删除数据项

#去重同时删除数据项

S={1,2,3,omg,ok,yes,2,omg}

T=set(S)

P=tuple(T-{ok})

print(P)

上一篇:django 多对多操作
下一篇:Django框架
网友评论