python基础(part9)--容器类型之集合

鄙人学习笔记
开发工具:Spyder



集合set

定义

由一系列不重复的不可变类型变量组成的可变映射容器。相当于只有键没有值的字典

基本操作

基本操作 方式
创建空集合 set()
创建具有默认值的集合 ①{1, 2, 3} ②set(可迭代对象)
添加元素 add
删除元素 remove

创建空集合和有默认值的集合

代码:

#创建空集合
s01 = set()
print(s01)
print("--------------")

#创建有默认值的集合
s01 = {1, 2, 3, 4}
s02 = set("abcde")
print(s01)
print(s02)

结果:

添加及删除

代码:

s02 = set("abcde")

#添加
s02.add("A")
s02.add("B")
print(s02)
print("--------------")

#删除
s02.remove("d")
#若该元素不存在,则会报错
print(s02)

结果:

其他容器和集合的相互转换

代码:

#其他容器 --> 集合
s01 = set([1,3,5,7,9])

#集合 --> 其他容器
l01 = list(s01)
t01 = tuple(s01)
print(s01)
print(l01)
print(t01)

结果:

获取所有元素

代码:

s02 = set("abcde")

for item in s02:
    print(item)

结果:

运算

符号 运算
& 交集
| 并集
- 补集
^ 对称补集
< 子集
> 超级

举个例子

代码:


s01 = {2, 3, 4, 5}
s02 = {4, 5, 6, 7}

#交集
s03 = s01 & s02 # {4, 5}
print(s03) 

#并集
s04 = s01 | s02 # {2, 3, 4, 5, 6, 7}
print(s04)

#补集
s05 = s01 ^ s02 # {2, 3, 6, 7}
print(s05)

s06 = s01 - s02 # {2, 3}
print(s06)
s07 = s02 - s01 # {6, 7}
print(s07)

#子集和超集
sA = {1, 2, 3}
sB = {1, 2}
re01 = sA < sB #False 说明sA不是sB的子集
re02 = sA > sB #True 说明sA是sB的超集
print(re01)
print(re02)


#相同和不同
s_1 = {1, 2, 3}
s_2 = {1, 2, 3}
re = s_1==s_2 #True 说明s_1与s_2相同
print(re)

结果:

集合推导式

  • 定义
    使用简易方法,将可迭代对象转换为集合。

  • 语法

{表达式 for 变量 in 可迭代对象}
{表达式 for 变量 in 可迭代对象 if 条件}
  • 例子

代码:

s01 = {item**2 for item in range(1, 9) if item % 2 == 0}
print(s01)

结果:

发布了116 篇原创文章 · 获赞 22 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/105096122
今日推荐