前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day09-集合

day09-集合

作者头像
似小陈吖
发布2024-01-23 08:27:46
970
发布2024-01-23 08:27:46
举报
文章被收录于专栏:测试那些事测试那些事

集合(Set)是一种可变、无序的数据类型,集合中的元素是唯一的,不重复的

诶?我们之前讲过的字典也是同样的可变,无序的数据类型,但是字典是键值对的存储形式,而集合不是

1、初识集合

集合使用大括号 {} 包裹着,元素之间使用逗号 分隔,集合中的元素可以是字符串、数字、元祖等其他任何不可变数据类型。

代码语言:javascript
复制
# 字典例子
set = {1, 2, '3', (1, 2)}

print(set)

集合里的元素不能放可变数据类型,必须是不可变的数据元素

2、创建集合

使用{ }创建

代码语言:javascript
复制
set = {1, 2, 3, 4, 5}
print(set)

# 输出结果
{1, 2, 3, 4, 5}

直接使用花括号创建的字典,那突然有个问题,创建空集合使用{}可以用吗? set2 = {} print(set2,type(set2)) # 输出结果 {} <class 'dict'>

结果是字典类型,说明使用{ }创建的是空字典

使用set() 函数

set() 是一个内置函数,用于创建一个集合。set() 函数可以接受一个可迭代对象作为参数,并将其转换为一个集合。如果没有提供参数,则返回一个空集合。

可迭代对象有字符串,列表,元祖,字典,集合

1、创建空集合

代码语言:javascript
复制
my_set = set()
print(my_set, type(my_set))

# 输出结果
set() <class 'set'>

2、集合里放字符串

代码语言:javascript
复制
my_set = set('hello')
print(my_set, type(my_set))

# 输出结果
{'l', 'o', 'h', 'e'} <class 'set'>

3、集合里放列表

代码语言:javascript
复制
my_set = set([1, 2, 3, 4])
print(my_set, type(my_set))

# 输出结果
{1, 2, 3, 4} <class 'set'>

4、集合里放元祖

代码语言:javascript
复制
my_set = set((1, 2, 3, 4))
print(my_set, type(my_set))

# 输出结果
{1, 2, 3, 4} <class 'set'>

5、集合里放字典

代码语言:javascript
复制
my_set = set({"1": 1, "2": 2, "3": 3})
print(my_set, type(my_set))

# 输出结果
{'3', '2', '1'} <class 'set'>

集合里元素是不可变元素,上述是使用set()函数可以把列表和字典转换为集合元素,而因为字典中键是不可变的,所以使用set函数放入字典,只会转换字典的键

3、集合特性

集合最大的特性是元素是唯一的,不允许重复

唯一性

举例说明:

代码语言:javascript
复制
my_set = {1, 2, 3, 2, 3, 5}
print(my_set)

猜猜打印结果是什么

输出结果:{1, 2, 3, 5}

集合不允许有重复元素,后边可以帮助我们去重

无序性

表示我们无法通过索引取值my_set[0] 会报错

列表和集合的区别

1、列表是[ ],集合是{ }

2、列表是有序的,可索引取值,集合是无序的,不可索引取值

3、列表可以放重复的元素,集合元素是唯一的,不会重复

4、集合增删改查

  • 使用 add() 方法添加单个元素到集合中。
  • 使用 update() 方法添加多个元素到集合中。
代码语言:javascript
复制
my_set = {1, 2, 3}
my_set.add(4)  # 添加单个元素
my_set.update({5, 6})  # 添加多个元素
print(my_set)  # 输出:{1, 2, 3, 4, 5, 6}

  • 使用 remove() 方法删除指定的元素。如果元素不存在,会引发 KeyError 错误
  • 使用 discard() 方法删除指定的元素。如果元素不存在,不会引发错误
  • 使用 pop() 方法删除并返回集合中的任意一个元素
代码语言:javascript
复制
my_set = {1, 2, 3, 4, 5, 6}
my_set.remove(4)  # 删除指定元素
my_set.discard(5)  # 删除指定元素
print(my_set)  # 输出:{1, 2, 3, 6}

popped_element = my_set.pop()  # 删除并返回任意一个元素
print(popped_element)  # 输出:1

clear() 也可以清空集合

集合中的元素是不可变的,所以不能进行修改

同样,集合无序的,所以也无法查询

不过我们可以通过in方法键字可以判断一个元素是否存在于集合中,如果有返回true,否则返回False

代码语言:javascript
复制
my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # 输出:True
print(6 in my_set)  # 输出:False

5、集合常见方法

len(set)

代码语言:javascript
复制
my_set = {1, 2, 3, 4, 5}

print(len(my_set))  # 5

max(set)

代码语言:javascript
复制
my_set = {1, 2, 3, 4, 5}

print(max(my_set))  # 5

min(set)

代码语言:javascript
复制
my_set = {1, 2, 3, 4, 5}

print(min(my_set))  # 1

如果集合中有不可比较的元素,会提示报错

6、集合的交集,并集,差集

union()

返回两个集合的并集。合并并去重

代码语言:javascript
复制
# union
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))

# 输出结果
{1, 2, 3, 4, 5}

intersection()

返回两个集合的交集,共同的元素

代码语言:javascript
复制
intersectionset1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.intersection(set2))
# 输出结果{3}

difference()

从源集合中找出目标集合中没有的元素集合

代码语言:javascript
复制
a= {1, 2, 3, 4}
b = {2, 3, 5}
print(a.difference(b))
# 输出结果{1, 4}

day09练习

初级

1.创建一个空集合

2.声明一个集合computer,包含如下元素computer = {"apple", "xiaomi", "huawei"}

3.计算2题中集合的长度并且打印输出

4.添加"vivo"到集合computer中

5.一次添加"oppo","meizu"到集合computer中

6.使用两种方法在集合computer移除一家公司,remove()discard(),两者之间有什么不同?

中级

有a集合和b集合,信息如下:

代码语言:javascript
复制
string1 = "hello"
string2 = "world"

1.连接a集合和b集合,并输出新集合

2.找出a集合和b集合的交集

3.找出a集合在b集合中没有的集合元素

高级

1.有如下两个字符串,找出如下字符串中共同包含的字符,输出打印

代码语言:javascript
复制
string1 = "hello"
string2 = "world"

2.有如下字符串,找出该字符串唯一的单词集合,并且输出唯一的单词列表

代码语言:javascript
复制
string = 'I am astring and I am anotherstring and I am the laststring'

3.有如下列表,找好该列表中每个元素及其出现的次数。(可学完循环和判断在做该题)

List = [1, 2, 2, 3, 3, 3, 4, 5]

要求:以字典的形式输出,比如输出:{1: 3, 2: 1, 3: 2}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、初识集合
  • 2、创建集合
    • 使用{ }创建
      • 使用set() 函数
      • 3、集合特性
        • 唯一性
          • 无序性
            • 列表和集合的区别
            • 4、集合增删改查
                    • 5、集合常见方法
                      • len(set)
                        • max(set)
                          • min(set)
                          • 6、集合的交集,并集,差集
                            • union()
                              • intersection()
                                • difference()
                                • day09练习
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档