Python基础知识之集合

  • 一 概念及其创建方式
  • 概念:
  • 创建方式:
  • 二 增删改操作
  • 三 集合之间的判断及其关系
  • 判断:
  • 关系
  • 四 集合的无序性


一 概念及其创建方式

概念:

集合也是Python中的一种内置数据结构,和字典,列表一样(可进行 增删改 操作)
集合是没有 value 的字典

创建方式:

第一种 { }:
代码举例:

a = {1,2,3,4,12,32}

其中,参数不能重复,否则只输出一个
集合的元素具有 无序性

第二种 内置函数(set):

a = set(range(6))
print(a)

输出结果为:

{0, 1, 2, 3, 4, 5}

其中 (类型)type: set

列表转换为集合:

a2 = set([1,2,3,4,5,6,7])
print(a2)

输出结果为:

{1,2,3,4,5,6,7}

元组转换为集合:

a3 = set((1,2,3,4,5,6,7))
print(a3)

输出结果为:

{1,2,3,4,5,6,7}

输出字符串型:

a4 = set('python')
print(a4)

输出结果为:

{‘p’, ‘y’, ‘o’, ‘h’, ‘n’, ‘t’}

原本就是集合,再次用set()定义:

a5 = set({1,2,3,4,5,6})
print(a5)

输出结果为:

{1,2,3,4,5,6}

空集合的创建(易混)

先来演示正确的空集合的创建:

b = set()

再来演示易混的创建方式:

c = {}

注意:

此创建的为 空字典,而非是 空列表

二 增删改操作

add()

update()

添加一个元素

添加至少一个元素

add() 代码演示:

s={1,2,3,4}
s.add(31)
print(s)

输出结果为:

{1,2,3,4,31}

update() 代码演示:

e = {1,2,3}
e.update(122,144,133)
print(e)

输出结果为:

{1,2,3,144,133,122}

添加列表:

e = {1,2,3}
e.update([15,13,11])
print(e)

输出结果为:

{1,2,3,15,13,11}

添加元组:

e = {1,2,3}
e.update((133,1411))
print(e)

输出结果为:

{1,2,3,133,1411}

函数

含义

remove()

删除一个指定元素(元素不存在则报错

pop()

随机删除一个元素

clear()

清除集合

discard()

删除一个指定元素(元素不存在不会报错

三 集合之间的判断及其关系

判断:

简单概述一下集合之间的判断:

in

not in

判断该元素是否其集合

判断该元素是否不在其集合

和其英语含义一样, 或者 不在
其判断结果也为布尔值(False True)

关系

集合集合,就如同数学中我们所学习的那个集合,也有其 子集交集 等这些名词,那么Python中的这些关系该如何表达呢?
接下来我们将以代码举例来解释:

判断两个集合是否相等( == 和!=)
同样,结果为布尔值

q1 = {1,2,3,45}
q2 = {1,2,3,66}
print(q1 == q2)
print('-----------------------')
print(q1 != q2)

输出结果为:

False
-----------------------
True

判断一个集合是否为另一个集合的子集

s1 = {1,7,8,2}
s2 = {1,2,8,7,9,0}
print(s1.issubset(s2))

判断 s1 是否为 s2 的子集
输出结果为:

True

判断一个集合是否为另一个结合的超集
超集:假如 a 为 b 的子集,则 b 就是 a 的超集

s1 = {1,7,8,2}
s2 = {1,2,8,7,9,0}
print(s1.issuperset(s2))

判断 s1 是否为 s2 的超集
输出结果为:

Flase

判断两个集合是否存在交集

w = {1,2,3,7,6}
s = {1,4,5,9}
print(w.isdisjoint(s))

输出结果为:

Flase

原因:

因为isdisjoint中存在dis,所以这个思路是相反的,该函数是判断是否存在交集,若存在,则输出Flase

求两个集合之间的交集

s = {1,3,5,7,4}
s2 = {1,5,8,9,11}
print(s.intersection(s2))

输出结果为:

{1,5}

求两个集合之间的并集

a = {1,2,3}
b = {4,5,6}
print(a.union(b))

输出结果为:

{1,2,3,4,5,6}

求两个集合之间差集

c = {1,2,3,4,5}
d = {1,2,3,7,8}
print(c.difference(d))

输出结果为:

{4,5}

解释:
difference() 含义为 c 的集合减去二者之间的交集

求两个集合之间的对称差集

s2 = {12,13,14,15}
s3 = {12,14,111,222}
print(s2.symmetric_difference(s3))

输出结果为:

{13, 111, 15, 222}

解释:

对称差集 就是a和b的并集减去交集

其中 集合之间的运算是可以用运算符来表示的

函数

运算符

交集(intersection)

&

并集(union)


差集(difference)

-

对称差集(symmetric_difference)

^

左右两边可以为字典,列表等

左右两边必须为集合

以交集举例:

s1={1,2,3,4,5,10}
s2={1,2,3,5,4,60,70}
print(s1.intersection(s2))     
print(s1 & s2)

输出结果均为:

{1,2,3,4,5}

四 集合的无序性

列表

集合

有序性

无序性

代码举例:
列表

lst=[ i for i in range(10)]
print(lst)

输出结果为:

[0,1,2,3,4,5,6,7,8,9]

集合

a={i*i for i in range(10)}
print(a)

输出结果为:

{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

可以证实,集合是无序

python转换为int Python转换为集合_开发语言

新手小白,有何不妥,请您提出,还需努力!!!
👍+✏️+⭐️ 是对博主最大的鼓励与支持!!!