Python 篇章(十三)

一、set 概念

1. 什么是集合?

  • 集合本质

    • 类似 dict ,是一组key的集合,不储存value

    • 是无序 和 无重复元素的集合

    • 可以使用大括号 { } 或者 set() 函数创建集合

    • 注意:创建空集合时 就必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

2. 如何创建 集合?

  • 格式
    • 集合名 =
    • set()
  • 示例
# 创建空集合
set1 = set()
print(type(set1), set1)        # <class 'set'> set()

# 创建带有元素的集合
set2 = {1, 2, "lemon"}
print(type(set2), set2)        # <class 'set'> {1, 2, 'lemon'}

# 创建带有多个重复的元素,验证set能否去重
set3 = {1, 2, 2, 2, "lemon", 3, "lemon"}
print(type(set3), set3)       # <class 'set'> {1, 2, 3, 'lemon'}

二、集合操作

1. add.() 添加

  • 示例
set4 = {1, 2, 3}
set4.add(4)
print("set4 = %s" % set4)   # set4 = {1, 2, 3, 4}
set4.add(4)                 # 可以添加重复的,但是不会有效果,因为set是无序和无重复元素的集合
print("set4 = %s" % set4)   # set4 = {1, 2, 3, 4}

set4.add("lemon")           # set的元素可以是字符串,因为字符串是不可变的
set4.add((5, 6, 7))         # set的元素可以是元组,因为元组是不可变的
print("set4 = %s" % set4)   # set4 = {1, 2, 3, 4, (5, 6, 7), 'lemon'}

2. update() 插入

  • update() 插入整个list、tuple、字符串,打碎插入到set
  • 示例
set5 = {1, 2, 3, 3}

set5.update([4, 5])
set5.update((6, 7))
set5.update("abcd")

print(f"set5={set5}")    # set5={1, 2, 3, 4, 5, 6, 7, 'a', 'd', 'b', 'c'};set是无序的!

3. remove() discard() 删除

  • remove() 删除指定数据;要删除的数据如果不存在则报错
  • discard() 删除指定数据;要删除的数据即使不存在也不报错
  • 示例
set6 = {10, 20, 30, 40, 50, 60, 70}

# remove()
set6.remove(30)
# set6.remove(80)            # 报错;因为不存在
print("set6 = %s" % set6)    # set6 = {70, 40, 10, 50, 20, 60}

# discard()
set6.discard(40)
set6.discard(80)
print("set6 = %s" % set6)    # set6 = {70, 10, 50, 20, 60}

4. 遍历

  • 示例
set7 = {"lemon", "set", "good"}
# 1
for i in set7:
    print(i)    # set是没有索引的!!

# 2
for index,date in enumerate(set7):
    print(index,date)   # index就是下标,但是没有意义,因为集合是无序的!!

5. 交集、并集

  • 交集 & ( 两个集合中相同的元素组成的集合 )
  • 并集 | ( 两个集合中所有元素组成的集合,但是都不重复 )
set8 = set([1, 2, 3])
set9 = set([2, 3, 4])

# 交集 
a1 = set8 & set9
print("a1 = %s" % a1, type(a1))       # a1 = {2, 3} <class 'set'>

# 并集
a2 =set8 | set9
print("a2 = %s" % a2, type(a2))       # a2 = {1, 2, 3, 4} <class 'set'>

6. 类型转换

  • 公式:想转什么类型就写什么类型

  • 示例

# tuple --> set
Tuple1 = (1, 2, 3, 4, 5, 5, 3, 1)
Set1 = set(Tuple1)
print(Set1, type(Set1))              # {1, 2, 3, 4, 5} <class 'set'>

# set --> tuple
Set2 = {1, 2, 3, 4, 5}
Tuple2 = tuple(Set2)
print(Tuple2, type(Tuple2))          # (1, 2, 3, 4, 5) <class 'tuple'>

# list --> set
List = [1, 2, 3, 4, 5, 5, 3, 1]
print(set(List), type(set(List)))    # {1, 2, 3, 4, 5} <class 'set'>

# set --> list
Set = {1, 2, 3, 4, 5}
print(list(Set), type(list(Set)))  # [1, 2, 3, 4, 5] <class 'list'>
posted @   ArMinLi  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示