Python “集合” 100道实战题目练习,巩固知识、检查技术

news2024/11/25 1:02:57

 

本文主要是作为Python中列表的一些题目,方便学习完Python的集合之后进行一些知识检验,感兴趣的小伙伴可以试一试,含选择题、判断题、实战题、填空题答案在第五章

在做题之前可以先学习或者温习一下Python的列表,推荐阅读下面这篇文章:

Python全网最全基础课程笔记(九)——集合,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

通过这些题目,学习者可以检验自己对Python字典基础知识的掌握程度。

编程不仅是技术的堆砌,更是灵魂的创造,每一次代码的跳动,都是向世界宣告你的不凡!

  • 博客主页:长风清留扬-CSDN博客
  • 系列专栏:Python基础专栏
  • 每天更新大数据相关方面的技术,分享自己的实战工作经验和学习总结,尽量帮助大家解决更多问题和学习更多新知识,欢迎评论区分享自己的看法
  • 感谢大家点赞👍收藏⭐评论

第一章:选择题

题目1:集合(Set)在Python中是一种什么类型的数据结构?

A. 有序集合

B. 无序集合,不包含重复元素

C. 字典的另一种形式

D. 列表的另一种形式

题目2:集合主要用于什么目的?

A. 存储大量数据并进行快速查找

B. 存储键值对

C. 存储有序的数据序列

D. 执行复杂的数学运算

题目3:集合中的元素必须是?

A. 不可变类型

B. 可变类型

C. 既可以是可变类型也可以是不可变类型

D. 必须是数字

题目4:如何创建一个空集合?

A. set()

B. {}

C. set([])

D. list()

题目5:以下哪个操作是集合特有的,列表和元组都不具备?

A. 索引访问

B. 切片

C. 集合推导式

D. 集合的并集操作(|

题目6:如何向集合中添加元素?

A. 使用 append() 方法

B. 使用 add() 方法

C. 直接赋值

D. 使用 extend() 方法

题目7:集合的哪些操作是自动去重的?

A. 交集(&

B. 并集(|

C. 差集(-

D. 以上都是

题目8:如何检查一个元素是否存在于集合中?

A. 使用 in 关键字

B. 使用 find() 方法

C. 使用 index() 方法

D. 使用 contains() 方法

题目9:以下哪个表达式的结果是一个集合?
A. {1, 2, 3} + {3, 4, 5}
B. {1, 2, 3} & {3, 4, 5}
C. {1, 2, 3} * 2
D. {1, 2, 3} - {3, 4, 5}

题目10:以下哪个操作会修改原集合?
A. a = {1, 2, 3}; b = a.union({4, 5})
B. a = {1, 2, 3}; a.update({4, 5})
C. a = {1, 2, 3}; b = a | {4, 5}
D. a = {1, 2, 3}; a.intersection_update({4, 5})

题目11:集合 {1, 2, 3} 和 {2, 3, 4} 的交集是?
A. {1, 2, 3, 4}
B. {2, 3}
C. {1, 4}
D. {}

题目12:以下哪个表达式的结果不是集合?
A. set([1, 2, 3])
B. {x for x in range(3)}
C. {1, 2} + [3, 4]
D. frozenset({1, 2, 3})(注意:虽然frozenset不是集合,但这里考察的是结果类型)

题目13:如何删除集合中的元素?
A. 使用 del 关键字
B. 使用 remove() 方法
C. 使用 pop() 方法
D. A 和 B 都可以

题目14:在Python中,如何创建一个包含元素1, 2, 3的集合?
A. set(1, 2, 3)
B. {1, 2, 3}
C. list(1, 2, 3)
D. set([1, 2, 3])

题目15:集合的一个主要特性是什么?
A. 有序性
B. 允许重复元素
C. 元素必须是不可变类型
D. 自动去重

题目16:下列哪个操作不是集合支持的操作?
A. 交集(&
B. 索引访问([index]
C. 并集(|
D. 差集(-

题目17:假设有集合a = {1, 2, 3}b = {3, 4, 5},执行a.update(b)后,集合a的值是?
A. {1, 2, 3, 4, 5}
B. {3, 4, 5}
C. {1, 2, 3}
D. {1, 2, 3, 3, 4, 5}

题目18:要检查元素4是否在集合s = {1, 2, 3, 4}中,应使用什么语法?
A. s.contains(4)
B. s.includes(4)
C. 4 in s
D. s[4]

题目19:如何从集合中移除一个元素?
A. 使用del关键字
B. 使用remove()方法
C. 使用pop()方法(注意:虽然集合没有直接的pop()方法,但这里考察意图)
D. A和B都可以

题目20:集合a = {1, 2, 3}b = {2, 3, 4}的对称差集是?
A. {1, 2, 3, 4}
B. {2, 3}
C. {1, 4}
D. {}

题目21:下列哪个表达式可以创建一个空集合?
A. {}
B. set()
C. set({})
D. list()

题目22:集合推导式(Set Comprehension)允许你根据现有集合生成新集合,其语法与列表推导式类似。以下哪个是有效的集合推导式?
A. {x*2 for x in [1, 2, 3]}
B. [x*2 for x in {1, 2, 3}]
C. {x*2: x for x in [1, 2, 3]}(注意:这不是集合推导式,而是字典推导式的错误写法)
D. set(x*2 for x in [1, 2, 3])(虽然正确,但不是集合推导式的标准写法)

题目23:集合是否支持切片操作?
A. 是
B. 否

题目24:以下哪个选项正确地创建了一个包含三个元素的集合?
A. set = {1, 2, 3}
B. my_set = [1, 2, 3]
C. my_set = {1, 2, 2, 3}
D. my_set = {1, 'a', True}

题目25:在Python中,如何计算两个集合的并集?
A. 使用|操作符
B. 使用&操作符
C. 使用+操作符
D. 使用union()方法

题目26:集合s = {1, 2, 3},执行s.add(4)后,s的值是?
A. {1, 2, 3, 4}
B. {4}
C. {1, 2, 3}
D. 抛出异常

题目27:以下哪个方法用于从集合中移除一个元素,如果该元素不存在则抛出异常?
A. remove()
B. discard()
C. pop()
D. del

题目28:要创建一个不可变的集合,应该使用哪个函数?
A. set()
B. frozenset()
C. immutableset()
D. unchangeableset()

题目29:集合a = {1, 2, 3}和集合b = {2, 3, 4}a.intersection(b)的结果是?
A. {1, 2, 3, 4}
B. {}
C. {2, 3}
D. {1, 4}

题目30:集合s = {1, 2, 3},执行s.remove(5)会发生什么?
A. 移除元素5(如果存在)
B. 抛出KeyError
C. 抛出ValueError
D. 集合s保持不变

题目31:集合支持哪种类型的索引访问?
A. 正向索引
B. 反向索引
C. 切片
D. 不支持索引访问

题目32:集合的update()方法用于什么?
A. 添加单个元素到集合
B. 移除集合中的元素
C. 合并两个集合
D. 计算两个集合的交集

题目33:集合s = {1, 2, 3},执行s.issubset({1, 2, 3, 4})的结果是?
A. True
B. False
C. 抛出异常
D. None

题目34:下列哪个操作可以用来检查一个元素是否存在于集合中?
A. 使用in关键字
B. 使用contains()方法
C. 使用is_member()函数
D. 使用exists()方法

题目35:集合s = {1, 2, 3},执行s.difference({2, 3, 4})后,s的值是?
A. {1, 2, 3}
B. {4}
C. {1}
D. 抛出异常

题目36:集合a = {1, 2, 3}和集合b = {3, 4, 5},执行a.symmetric_difference(b)后,结果集合包含哪些元素?
A. {1, 2, 4, 5}
B. {3}
C. {}
D. {1, 2, 3, 4, 5}

题目37:下列哪个方法或操作符可以用来计算两个集合的交集?
A. |
B. &
C. -
D. ^

题目38:集合是可变的数据结构吗?
A. 是的,集合是可变的
B. 不是,集合是不可变的
C. 集合可以是可变的或不可变的,取决于创建方式
D. 集合既非完全可变也非完全不可变,它有其特定的修改方法

题目39:集合s = {1, 2, 3},执行s.clear()后,s的值是?
A. {1, 2, 3}
B. {}
C. None
D. 抛出异常

题目40:集合s = {1, 2, 3},以下哪个表达式的结果是False
A. 1 in s
B. s.issubset(s)
C. s.issuperset({4, 5})
D. s.isdisjoint({4, 5})

第二章:判断题

题目1:在Python中,{1, 2, 3} 和 set([1, 2, 3]) 都能正确创建一个包含元素1, 2, 3的集合。

题目2:集合的元素可以是任何类型的对象,包括列表和字典。

题目3:集合支持索引访问,可以通过索引来获取集合中的元素。

题目4:使用 update() 方法可以向集合中添加多个元素。

题目5:集合是无序的,因此你不能预测集合中元素的顺序。

题目6:要检查一个元素是否存在于集合中,应该使用 in 关键字。

题目7:集合支持并集操作,可以使用 | 符号或者 union() 方法。

题目8:集合支持切片操作,可以通过切片来获取集合的一部分元素。

题目9:使用 remove() 方法可以从集合中移除一个元素,但如果该元素不存在,会抛出异常。

题目10:集合推导式允许你根据现有的集合或其他可迭代对象来创建一个新的集合。

题目11:集合在Python中是通过大括号{}来定义的。

题目12:集合可以包含重复的元素。

题目13:使用add()方法可以向集合中添加一个元素。

题目14:集合支持使用len()函数来获取其元素的数量。

题目15:集合和列表一样,都是有序的数据结构。

题目16:要从集合中移除一个元素,除了使用remove()方法外,还可以使用discard()方法,但discard()方法在元素不存在时不会抛出异常。

题目17:集合推导式是一种从其他集合或可迭代对象创建新集合的简洁方式。

题目18:集合支持交集、并集、差集和对称差集等集合操作。

题目19:使用issubset()issuperset()方法可以检查一个集合是否是另一个集合的子集或超集。

题目20:在Python中,集合是可变的,即你可以在创建后添加或删除元素。

题目21:集合在Python中用于存储不重复的元素。

题目22:你可以使用set()函数将任何可迭代对象(如列表、元组)转换为集合。

题目23:集合支持使用pop()方法来随机移除并返回一个元素。

题目24:集合的clear()方法会移除集合中的所有元素,使其变为空集合。

题目25:集合的copy()方法会返回集合的一个浅拷贝。

题目26:集合支持使用<=>=运算符来比较两个集合的大小关系。

题目27:集合的intersection_update()方法会更新集合,使其仅包含两个集合的交集元素。

题目28:集合的difference_update()方法会从集合中移除那些存在于另一个集合中的元素。

题目29:集合的symmetric_difference_update()方法会更新集合,使其包含两个集合的对称差集元素。

题目30:集合的isdisjoint()方法用于检查两个集合是否有交集,如果没有交集则返回True

题目31:集合是Python中一种无序的、不包含重复元素的数据结构。

题目32:你可以使用frozenset()函数将集合转换为不可变集合。

题目33:集合的union()方法用于计算两个集合的并集,但它不会修改原集合。

题目34:集合的intersection()方法返回两个集合的交集,但结果是一个新的集合,不会修改原集合。

题目35:在Python中,你可以使用&操作符作为intersection()方法的简写来计算两个集合的交集。

题目36:集合的difference()方法返回存在于第一个集合中但不在第二个集合中的所有元素。

题目37:集合的symmetric_difference()方法返回两个集合的对称差集,即只存在于一个集合中的元素。

题目38:集合的issubset()issuperset()方法分别用于检查一个集合是否是另一个集合的子集或超集,但不包括相等的情况。

题目39:集合的update()方法可以用来向集合中添加一个或多个元素,也可以接受另一个集合作为参数来添加其所有元素。

题目40:集合的discard()方法尝试从集合中移除一个元素,但如果该元素不存在,则不会抛出异常。

第三章:实战题

实战题1:去除列表中的重复元素

题目:给定一个列表lst = [1, 2, 2, 3, 4, 4, 5],编写一个函数去除列表中的重复元素,并返回结果列表。

解题思路

  • 可以使用集合(set)来自动去除重复元素,因为集合是一个无序且不包含重复元素的集合。
  • 然后将集合转换回列表。

实战题2:找出两个列表的公共元素

题目:给定两个列表list1 = [1, 2, 3, 4, 5]list2 = [4, 5, 6, 7, 8],找出它们的公共元素,并返回结果列表。

解题思路

  • 将两个列表分别转换为集合,以便使用集合的交集操作。
  • 使用&操作符或intersection()方法计算两个集合的交集。
  • 将交集结果转换回列表。

实战题3:合并两个列表并去除重复元素

题目:给定两个列表list1 = [1, 2, 3]list2 = [2, 3, 4, 5],合并它们并去除重复元素,返回结果列表。

解题思路

  • 将两个列表合并为一个新列表。
  • 将合并后的列表转换为集合以去除重复元素。
  • 将集合转换回列表。

实战题4:找出列表中只出现一次的元素

题目:给定一个列表lst = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7],找出列表中只出现一次的元素,并返回结果列表。

解题思路

  • 使用字典来记录每个元素出现的次数。
  • 遍历列表,对于每个元素,如果它不在字典中,则添加到字典中并设置计数为1;如果已存在,则增加其计数。
  • 再次遍历字典,找出计数为1的元素,并将它们添加到结果列表中。

实战题5:使用集合进行字符串去重

题目:给定一个字符串s = "aabbccddeeff",编写一个函数去除字符串中的重复字符,并返回结果字符串。

解题思路

  • 将字符串转换为字符列表。
  • 将字符列表转换为集合以去除重复字符。
  • 将集合转换回列表,然后排序(如果需要保持原字符串的字符顺序,则此步骤不适用)。
  • 最后,将列表转换回字符串。

注意:为了保持原字符串的字符顺序,我们可以使用集合来跟踪已看到的字符,但遍历字符串时直接构建结果字符串。

实战题6:找出两个集合的差集并排序

题目:给定两个集合set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8},找出set1中有而set2中没有的元素,并将结果排序后返回。

解题思路

  • 使用集合的差集操作difference()找出set1中有而set2中没有的元素。
  • 将结果转换为列表并排序。

实战题7:找出两个集合的对称差集

题目:给定两个集合set1 = {1, 2, 3, 4}set2 = {3, 4, 5, 6},找出它们的对称差集(即只存在于一个集合中的元素),并返回结果集合。

解题思路

  • 使用集合的对称差集操作symmetric_difference()来找出只存在于一个集合中的元素。

实战题8:使用集合进行字符串的字符去重并计数

题目:给定一个字符串s = "hello world",编写一个函数去除字符串中的重复字符,并返回每个字符及其出现次数的字典。

解题思路

  • 遍历字符串,使用字典来记录每个字符及其出现的次数。
  • 注意,由于题目要求去除重复字符,但又要记录每个字符的出现次数,所以实际上不需要真的“去除”重复字符,而是统计它们。

实战题9:使用集合和列表推导式找出列表中所有子集的并集

题目:给定一个列表lst = [1, 2, 3],找出该列表所有子集(包括空集和自身)的并集,并返回结果集合。注意,由于并集操作会去除重复元素,且子集之间可能存在重复元素,但在这个特定情况下,由于我们是从一个列表生成子集,所以并集实际上就是原列表的元素集合。

解题思路

  • 使用itertools.combinations或列表推导式生成所有子集。
  • 但由于题目特殊性,直接返回原列表的集合形式即可,因为并集操作在这个场景下是多余的。

不过,为了符合题目要求(尽管有些冗余),我们还是展示如何生成子集并取并集(尽管结果与原列表集合相同)。

实战题10:找出两个集合的交集并排序

题目:给定两个集合set1 = {3, 1, 4, 1, 5, 9}set2 = {1, 2, 4, 5, 8},找出它们的交集,并将结果排序后返回。

解题思路

  • 使用集合的交集操作intersection()来找出两个集合共有的元素。
  • 将结果转换为列表并排序。

第四章:填空题

题目1:在Python中,集合是一个无序的、不包含重复元素的____。

题目2:创建一个空集合需要使用符号____,而不是{},因为{}用来表示一个空字典。

题目3:使用set()函数可以将一个____转换成集合。

题目4:集合的并集操作使用符号____。

题目5:集合的交集操作使用函数____。

题目6:要从集合中移除一个元素,可以使用____方法。

题目7:如果尝试向集合中添加一个已经存在的元素,该操作将____。

题目8:集合A = {1, 2, 3}和集合B = {3, 4, 5}的对称差集是____。

题目9:集合支持____操作,可以用来检查一个元素是否存在于集合中。

题目10:使用____函数可以将两个集合的并集、交集、差集或对称差集的结果进行合并,但不包括原集合本身。

第五章:答案

选择题答案

题目1:B

解析:(集合是无序的,且不包含重复元素)

题目2:A

解析:(集合主要用于存储大量数据并进行快速查找)

题目3:A

解析:(集合中的元素必须是不可变类型)

题目4:A

解析:(使用set()函数创建空集合,{}用于创建空字典)

题目5:D

解析:(集合的并集操作是集合特有的)

题目6:B

解析:(使用add()方法向集合中添加元素)

题目7:D

解析:(所有集合操作都会自动去重)

题目8:A

解析:(使用in关键字检查元素是否存在于集合中)

题目9:D

解析:(并集操作使用|,但结果赋值给变量时,若变量未声明为集合类型,则结果仍为集合;但+不是集合的操作符)

题目10:B

解析:update()方法会修改原集合)

题目11:B

解析:(交集是共有的元素)

题目12:C

解析:+不能用于集合和列表的合并)

题目13:D

解析:del可以删除指定元素,remove()也可以删除指定元素,但pop()不是集合的方法)

题目14:B, D

解析:(但更常见和推荐的是B选项的写法)在Python中,集合可以使用大括号{}直接创建,但需要注意与字典的区别(字典的键值对用冒号:分隔)。也可以使用set()函数并传入一个可迭代对象(如列表)来创建集合。

题目15:D

解析:集合的一个主要特性是自动去重,即集合中不会有重复的元素。

题目16:B

解析:集合不支持索引访问,因为集合是无序的。

题目17:A

解析:update()方法用于更新集合,添加所有不在集合中的元素。因此,a.update(b)后,集合a将包含{1, 2, 3, 4, 5}

题目18:C

解析:在Python中,检查元素是否存在于集合中应使用in关键字。

题目19:D

解析:del关键字和remove()方法都可以用于从集合中移除元素。但需要注意的是,集合没有直接的pop()方法,因为集合是无序的,所以pop()操作没有明确定义的行为(尽管在某些Python版本中,尝试使用pop()可能会引发TypeError)。

题目20:C

解析:对称差集(Symmetric Difference)是两个集合中都不重复的元素组成的集合。对于集合a = {1, 2, 3}b = {2, 3, 4},它们的对称差集是{1, 4}

题目21:B        

解析:虽然{}在Python中通常用于创建空字典,但使用set()函数是创建空集合的正确方法。

题目22:A        

解析:{x*2 for x in [1, 2, 3]}是一个有效的集合推导式,它将列表[1, 2, 3]中的每个元素乘以2,并将结果作为新集合的元素。选项B是一个列表推导式,选项C是字典推导式的错误写法,选项D虽然也能得到结果,但不是集合推导式的标准写法。

题目23:B

解析:集合不支持切片操作,因为集合是无序的。切片操作主要用于有序的数据结构,如列表和元组。

题目24:D        

解析:选项A使用了set作为变量名,这是不推荐的,因为set是Python的内置类型。选项B创建了一个列表而非集合。选项C中集合自动去重,所以结果应为{1, 2, 3},但这不是题目的意思,它问的是如何正确地创建一个集合。选项D正确地创建了一个包含三个不同类型元素的集合。

题目25:A, D        

解析:|操作符和union()方法都可以用来计算两个集合的并集。

题目26:A        

解析:add()方法用于向集合中添加一个元素,如果元素已存在则不会添加,但集合本身会更新以包含新添加的元素(如果它确实是新元素的话)。

题目27:A        

解析:remove()方法用于从集合中移除一个元素,如果该元素不存在,则抛出ValueError异常。

题目28:B        

解析:frozenset()函数用于创建一个不可变的集合。

题目29:C        

解析:intersection()方法返回两个集合的交集,即同时存在于两个集合中的元素。

题目30:C        

解析:尝试从集合中移除一个不存在的元素会抛出ValueError异常。

题目31:D        

解析:集合是无序的,因此不支持通过索引访问元素。

题目32:C        

解析:update()方法用于向集合中添加元素,它可以接受另一个集合作为参数,并将该集合中的所有元素添加到原集合中(去除重复元素)。

题目33:A        

解析:issubset()方法用于检查一个集合是否是另一个集合的子集。在这个例子中,集合s确实是集合{1, 2, 3, 4}的子集。

题目34:A        

解析:在Python中,检查元素是否存在于集合中通常使用in关键字。

题目35:C        

解析:difference()方法返回存在于第一个集合中但不在第二个集合中的所有元素。因此,{1, 2, 3}.difference({2, 3, 4})的结果是{1}。注意,s的值会被修改,但题目问的是执行后的结果,而非s的最终状态(如果s未被重新赋值的话)。

题目36:A       

解析:symmetric_difference()方法返回两个集合的对称差集,即只存在于一个集合中的元素。

题目37:B        

解析:&操作符或intersection()方法可以用来计算两个集合的交集。

题目38:A        

解析:集合是可变的数据结构,你可以添加或删除其元素,但不能通过索引访问或修改特定位置的元素。

题目39:B 

解析:clear()方法会移除集合中的所有元素,使其变为空集{}

题目40:C        

解析:issuperset()方法用于检查一个集合是否是另一个集合的超集。在这个例子中,{1, 2, 3}不是{4, 5}的超集,所以s.issuperset({4, 5})的结果是False

判断题

题目1:

答案:正确
解析{1, 2, 3} 是直接使用集合字面量创建集合的方式,而 set([1, 2, 3]) 是将列表转换为集合的方式,两者都能正确创建一个包含元素1, 2, 3的集合。

题目2:

答案:错误
解析:集合的元素必须是不可变类型,因为集合需要确保元素的唯一性。列表和字典是可变类型,因此不能作为集合的元素。

题目3:

答案:错误
解析:集合是无序的,因此不支持索引访问。你不能通过索引来获取集合中的特定元素。

题目4:

答案:正确
解析update() 方法用于向集合中添加元素,可以接受另一个集合、列表等可迭代对象作为参数,并将其中不重复的元素添加到原集合中。

题目5:

答案:正确
解析:集合是无序的,其元素的存储顺序是不确定的,且在不同的Python实现中可能会有所不同。

题目6:

答案:正确
解析:在Python中,使用 in 关键字可以检查一个元素是否存在于集合中。

题目7:

答案:正确
解析:集合支持并集操作,可以使用 | 符号或 union() 方法来获取两个集合的并集,即包含两个集合中所有不重复元素的集合。

题目8:

答案:错误
解析:集合不支持切片操作,因为集合是无序的。切片操作主要用于有序的数据结构,如列表和元组。

题目9:

答案:正确
解析remove() 方法用于从集合中移除一个指定的元素。如果元素不存在于集合中,该方法会抛出一个 KeyError(在Python 3中应为ValueError,因为集合不是字典,但这里的描述可能是个误导,按照通常的理解,答案仍然是正确的,指的是如果尝试移除不存在的元素会抛出异常)。

题目10:

答案:正确
解析:集合推导式允许你根据现有的集合或其他可迭代对象来创建一个新的集合。其语法与列表推导式类似,但结果是一个集合而不是列表。

题目11:

答案:错误
解析:虽然大括号{}在Python中通常用于定义集合和字典,但空的大括号{}默认被解释为空字典,而不是空集合。要定义空集合,应使用set()。对于非空集合,可以使用{element1, element2, ...}的语法,但这与字典的语法(键值对使用冒号:分隔)不同。

题目12:

答案:错误
解析:集合的一个主要特性是它会自动去重,因此集合中不能包含重复的元素。

题目13:

答案:正确
解析add()方法是集合的一个方法,用于向集合中添加一个元素。如果元素已存在,则操作无效,因为集合不允许重复。

题目14:

答案:正确
解析len()函数是Python的一个内置函数,可以用于获取各种容器类型(包括集合)的长度,即元素的数量。

题目15:

答案:错误
解析:集合与列表不同,集合是无序的,不能通过索引来访问元素。列表则是有序的,支持索引访问。

题目16:

答案:正确
解析remove()discard()方法都可以用于从集合中移除元素。但remove()方法在元素不存在时会抛出ValueError异常,而discard()方法则不会,它会在元素不存在时静默失败。

题目17:

答案:正确
解析:集合推导式允许你根据现有的集合或其他可迭代对象通过一种简洁的语法来创建一个新的集合。

题目18:

答案:正确
解析:Python中的集合支持多种集合操作,包括交集(&intersection())、并集(|union())、差集(-difference())和对称差集(^symmetric_difference())。

题目19:

答案:正确
解析issubset()issuperset()方法是集合的成员资格测试方法,分别用于检查一个集合是否是另一个集合的子集或超集。

题目20:

答案:正确
解析:Python中的集合是可变的,这意味着你可以在集合创建后添加或删除元素。与不可变的集合类型(如frozenset)不同,普通的集合支持这些操作。

题目21:

答案:正确
解析:集合是Python中的一种基本数据结构,用于存储不重复的元素。

题目22:

答案:正确
解析set()函数可以接受任何可迭代对象(如列表、元组、字符串等)作为参数,并将其转换为一个集合,自动去除重复元素。

题目23:

答案:错误
解析:集合没有pop()方法。列表(list)和字典(dict)有pop()方法,但集合(set)没有。如果你需要从集合中移除一个随机元素,可以先将集合转换为列表,使用列表的pop()方法,然后再将结果转换回集合(但这通常不是最高效的方法)。

题目24:

答案:正确
解析clear()方法是集合的一个方法,用于移除集合中的所有元素,使其变为空集合。

题目25:

答案:正确
解析copy()方法是集合的一个方法,用于返回集合的一个浅拷贝。浅拷贝意味着集合中的元素本身不会被复制,而是复制了元素的引用。

题目26:

答案:错误
解析:集合的<=>=运算符用于比较两个集合是否是子集或超集关系,而不是比较它们的大小(即元素的数量)。要比较集合的大小,应使用len()函数。

题目27:

答案:正确
解析intersection_update()方法是集合的一个方法,用于更新集合,使其仅包含两个集合的交集元素。即,它会移除集合中不存在于另一个集合中的所有元素。

题目28:

答案:正确
解析difference_update()方法是集合的一个方法,用于从集合中移除那些存在于另一个集合中的元素。这相当于执行了差集操作并更新了原集合。

题目29:

答案:正确
解析symmetric_difference_update()方法是集合的一个方法,用于更新集合,使其包含两个集合的对称差集元素。即,它会移除两个集合中共有的元素,只保留各自独有的元素。

题目30:

答案:正确
解析isdisjoint()方法是集合的一个方法,用于检查两个集合是否有交集。如果两个集合没有交集,则返回True;否则返回False

题目31:

答案:正确
解析:集合是Python中的一种基本数据结构,它的主要特性是无序性和不包含重复元素。

题目32:

答案:正确
解析frozenset()函数可以将一个集合转换为不可变的集合(frozenset),这样的集合就不能再被修改(如添加或删除元素)。

题目33:

答案:正确
解析union()方法是集合的一个方法,用于计算两个集合的并集,即包含两个集合中所有不重复元素的集合。它返回一个新的集合,不会修改原集合。

题目34:

答案:正确
解析intersection()方法是集合的一个方法,用于计算两个集合的交集,即同时存在于两个集合中的元素。它同样返回一个新的集合,不会修改原集合。

题目35:

答案:正确
解析:在Python中,&操作符可以用作intersection()方法的简写,来计算两个集合的交集。

题目36:

答案:正确
解析difference()方法是集合的一个方法,它返回存在于第一个集合中但不在第二个集合中的所有元素。这相当于执行了差集操作。

题目37:

答案:正确
解析symmetric_difference()方法是集合的一个方法,它返回两个集合的对称差集,即只存在于一个集合中的元素。这相当于执行了对称差集操作。

题目38:

答案:错误
解析issubset()issuperset()方法分别用于检查一个集合是否是另一个集合的子集或超集,它们也包括相等的情况。如果两个集合相等,那么它们既是子集也是超集。

题目39:

答案:正确
解析update()方法是集合的一个方法,它可以用来向集合中添加一个或多个元素。它也可以接受另一个集合作为参数,并将该集合中的所有元素添加到原集合中,但不包括重复元素。

题目40:

答案:正确
解析discard()方法是集合的一个方法,它尝试从集合中移除一个指定的元素。如果元素不存在,则discard()方法不会抛出异常,而是静默失败。这与remove()方法不同,后者在元素不存在时会抛出ValueError异常。

实战题答案

实战题1:去除列表中的重复元素

def remove_duplicates(lst):  
    # 使用集合去除重复元素  
    unique_elements = set(lst)  
    # 将集合转换回列表  
    result_list = list(unique_elements)  
    return result_list  
  
# 测试代码  
lst = [1, 2, 2, 3, 4, 4, 5]  
print("原始列表:", lst)  
print("去除重复后的列表:", remove_duplicates(lst))  
  
# 运行结果  
# 原始列表: [1, 2, 2, 3, 4, 4, 5]  
# 去除重复后的列表: [1, 2, 3, 4, 5]  
# 注意:由于集合是无序的,所以返回的列表顺序可能不同,但元素是相同的。

实战题2:找出两个列表的公共元素

def find_common_elements(list1, list2):  
    # 将列表转换为集合  
    set1 = set(list1)  
    set2 = set(list2)  
    # 计算集合的交集  
    intersection_set = set1 & set2  # 或者使用 set1.intersection(set2)  
    # 将交集结果转换回列表  
    result_list = list(intersection_set)  
    return result_list  
  
# 测试代码  
list1 = [1, 2, 3, 4, 5]  
list2 = [4, 5, 6, 7, 8]  
print("列表1:", list1)  
print("列表2:", list2)  
print("公共元素:", find_common_elements(list1, list2))  
  
# 运行结果  
# 列表1: [1, 2, 3, 4, 5]  
# 列表2: [4, 5, 6, 7, 8]  
# 公共元素: [4, 5]

实战题3:合并两个列表并去除重复元素

def merge_and_remove_duplicates(list1, list2):  
    # 合并两个列表  
    merged_list = list1 + list2  
    # 转换为集合去除重复元素  
    unique_elements = set(merged_list)  
    # 转换回列表  
    result_list = list(unique_elements)  
    return result_list  
  
# 测试代码  
list1 = [1, 2, 3]  
list2 = [2, 3, 4, 5]  
print("列表1:", list1)  
print("列表2:", list2)  
print("合并并去除重复元素后的列表:", merge_and_remove_duplicates(list1, list2))  
  
# 运行结果  
# 列表1: [1, 2, 3]  
# 列表2: [2, 3, 4, 5]  
# 合并并去除重复元素后的列表: [1, 2, 3, 4, 5]  
# 注意:由于集合是无序的,所以返回的列表顺序可能不同,但元素是相同的。

实战题4:找出列表中只出现一次的元素

def find_unique_elements(lst):  
    # 使用字典记录元素出现次数  
    count_dict = {}  
    for element in lst:  
        if element in count_dict:  
            count_dict[element] += 1  
        else:  
            count_dict[element] = 1  
      
    # 找出只出现一次的元素  
    unique_elements = [key for key, value in count_dict.items() if value == 1]  
    return unique_elements  
  
# 测试代码  
lst = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7]  
print("原始列表:", lst)  
print("只出现一次的元素:", find_unique_elements(lst))  
  
# 运行结果  
# 原始列表: [1, 2, 2, 3, 4, 4, 5, 6, 6, 7]  
# 只出现一次的元素: [1, 3, 5, 7]

实战题5:使用集合进行字符串去重

def remove_duplicate_chars(s):  
    seen = set()  
    result = []  
    for char in s:  
        if char not in seen:  
            seen.add(char)  
            result.append(char)  
    return ''.join(result)  
  
# 测试代码  
s = "aabbccddeeff"  
print("原始字符串:", s)  
print("去除重复字符后的字符串:", remove_duplicate_chars(s))  
  
# 运行结果  
# 原始字符串: aabbccddeeff  
# 去除重复字符后的字符串: abcdeff

实战题6:找出两个集合的差集并排序

def find_difference_and_sort(set1, set2):  
    # 计算差集  
    difference_set = set1.difference(set2)  
    # 转换为列表并排序  
    sorted_list = sorted(list(difference_set))  
    return sorted_list  
  
# 测试代码  
set1 = {1, 2, 3, 4, 5}  
set2 = {4, 5, 6, 7, 8}  
print("集合1:", set1)  
print("集合2:", set2)  
print("差集并排序后的结果:", find_difference_and_sort(set1, set2))  
  
# 运行结果  
# 集合1: {1, 2, 3, 4, 5}  
# 集合2: {4, 5, 6, 7, 8}  
# 差集并排序后的结果: [1, 2, 3]

实战题7:找出两个集合的对称差集

def find_symmetric_difference(set1, set2):  
    # 计算对称差集  
    symmetric_diff = set1.symmetric_difference(set2)  
    return symmetric_diff  
  
# 测试代码  
set1 = {1, 2, 3, 4}  
set2 = {3, 4, 5, 6}  
print("集合1:", set1)  
print("集合2:", set2)  
print("对称差集:", find_symmetric_difference(set1, set2))  
  
# 运行结果  
# 集合1: {1, 2, 3, 4}  
# 集合2: {3, 4, 5, 6}  
# 对称差集: {1, 2, 5, 6}

实战题8:使用集合进行字符串的字符去重并计数

def char_count_without_duplicates(s):  
    # 使用字典记录字符及其出现次数  
    char_count = {}  
    for char in s:  
        if char in char_count:  
            char_count[char] += 1  
        else:  
            char_count[char] = 1  
    return char_count  
  
# 测试代码  
s = "hello world"  
print("原始字符串:", s)  
print("字符及其出现次数:", char_count_without_duplicates(s))  
  
# 运行结果  
# 原始字符串: hello world  
# 字符及其出现次数: {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}

实战题9:使用集合和列表推导式找出列表中所有子集的并集

from itertools import chain, combinations  
  
def subsets_union(lst):  
    # 生成所有子集(包括空集和自身),但这里不真正计算并集  
    # 因为在这个特定情况下,并集就是原列表的集合  
    subsets = chain.from_iterable(combinations(lst, r) for r in range(len(lst) + 1))  
    # 将子集转换为集合(但这里直接返回原列表的集合形式更直接)  
    # return set(chain.from_iterable(subsets))  # 这行是多余的,因为并集就是lst的集合  
    return set(lst)  # 直接返回lst的集合形式  
  
# 测试代码  
lst = [1, 2, 3]  
print("原始列表:", lst)  
print("所有子集的并集(实际上是原列表的集合):", subsets_union(lst))  
  
# 运行结果  
# 原始列表: [1, 2, 3]  
# 所有子集的并集(实际上是原列表的集合): {1, 2, 3}

实战题10:找出两个集合的交集并排序

def find_intersection_and_sort(set1, set2):  
    # 计算交集  
    intersection_set = set1.intersection(set2)  
    # 转换为列表并排序  
    sorted_list = sorted(list(intersection_set))  
    return sorted_list  
  
# 测试代码  
set1 = {3, 1, 4, 1, 5, 9}  
set2 = {1, 2, 4, 5, 8}  
print("集合1:", set1)  
print("集合2:", set2)  
print("交集并排序后的结果:", find_intersection_and_sort(set1, set2))  
  
# 运行结果  
# 集合1: {1, 3, 4, 5, 9}  
# 集合2: {1, 2, 4, 5, 8}  
# 交集并排序后的结果: [1, 4, 5]

填空题答案

题目1:

答案:容器
解析:集合是Python中的一种容器数据类型,用于存储不重复的元素。

题目2:

答案set()
解析:在Python中,创建一个空集合需要使用set()函数,而不是直接使用{},因为{}用于创建空字典。

题目3:

答案:可迭代对象
解析set()函数可以接受任何可迭代对象(如列表、元组、字符串等)作为参数,将其转换成集合。

题目4:

答案|
解析:在Python中,集合的并集操作使用|符号。

题目5:

答案intersection()
解析:集合的交集操作使用intersection()方法或&符号,但题目要求的是函数形式,故填intersection()

题目6:

答案remove() 或 discard()
解析:从集合中移除一个元素,可以使用remove()方法(如果元素不存在会抛出KeyError)或discard()方法(如果元素不存在不会抛出异常)。

题目7:

答案:不执行任何操作(或称为“无效”操作)
解析:集合中的元素是唯一的,如果尝试向集合中添加一个已经存在的元素,该操作将不会改变集合,即“无效”操作。

题目8:

答案{1, 2, 4, 5}
解析:集合A和集合B的对称差集是指只存在于一个集合中而不存在于另一个集合中的元素组成的集合。

题目9:

答案in
解析:集合支持in操作符,可以用来检查一个元素是否存在于集合中。

题目10:

答案union()intersection()difference()symmetric_difference()
解析:这些函数分别用于计算两个集合的并集、交集、差集和对称差集,但它们本身并不包括原集合本身。然而,题目要求的是一个能够“合并”这些结果的函数,但严格来说,Python集合没有直接提供一个单独的函数来“合并”这些操作的结果。这里列出的是进行这些操作的函数,但需要注意它们各自返回的是不同的结果集,而不是一个“合并”了所有结果的单一函数。如果要从语义上接近题目要求,可以理解为这些函数各自完成了不同的集合操作,但“合并”这些结果通常需要在代码逻辑层面上进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2135234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python selenium 破解腾讯滑块行为验证码

直接上代码&#xff1a; from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time,re,requests from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from seleniu…

leetcode两个题:只出现一次的数字、杨辉三角等的介绍

文章目录 前言一、只出现一次的数字二、杨辉三角总结 前言 leetcode两个题&#xff1a;只出现一次的数字、杨辉三角等的介绍 一、只出现一次的数字 0跟任何数异或结果都是任何数相同的数异或结果为0 class Solution { public:int singleNumber(vector<int>& nums) …

Navigation之使用Safe Args传递数据(二)

系列文章目录 Navigation的简单使用(一&#xff09; 一、Safe Args传递数据 1.引入库 1.将 Safe Args 添加到您的项目&#xff0c;请在顶层 build.gradle 文件中包含以下 classpath&#xff1a; buildscript {repositories {google()}dependencies {def nav_version "…

2024年9月114日(使用kubectl run 创建pod|配置文件创建pod)

一、pod 1、更改镜像站 [rootk8s-master ~]# vim /etc/docker/daemon.json {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","http…

如何将本地项目上传到GitHub(SSH连接)

在个人GitHub中新建项目(远程仓库)&#xff0c;添加一个README文件&#xff0c;方便后面验证 记住这个默认分支&#xff0c;我这里是main&#xff0c;你的可能是master或其他 先复制下SSH地址 在项目文件夹中右键打开Git命令行 初始化本地仓库&#xff0c;同时指定默认分支为ma…

MyBatis 面试题11-27

11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的? 都有哪些映射形式&#xff1f; Mybatis 在执行 SQL 查询后&#xff0c;会将结果集封装为目标对象并返回。这主要依赖于 Mybatis 的映射机制&#xff0c;它提供了两种主要的映射形式&#xff1a; 第一种&#xff1…

【触想智能】工控一体机在船舶航运上应用的优势和应用场景分析

随着船舶航运业的发展&#xff0c;工控一体机在船舶航运领域上的应用越来越广泛。工控一体机的功能和性能可以加强船舶航运领域的自动化和智能化水平。 下面&#xff0c;触想智能小编针对工控一体机在船舶航运领域上应用的优势和应用场景进行简单分析&#xff0c;给大家借鉴参考…

LVGL控件之表格(lv_table)

目录 一、概述二、表格1、设置单元格的值2、行和列的设置3、宽度和高度的设置4、合并单元格5、滚动6、事件7、API 函数 一、概述 Table&#xff08;表格&#xff09;是由包含文本的行、列和单元格构建的。 表格对象非常轻量级&#xff0c;因为仅存储文本。没有为各个单元格创…

Altium Designer常用操作备忘笔记

Altium Designer常用操作备忘笔记 Chapter1 Altium Designer常用操作备忘笔记Chapter2 Altium Designer 22.1.2使用总结&#xff08;常更&#xff09;一、原理图1.1 绘制元器件原理图1.2 绘制元器件封装1.3 修改原理图网格1.4 修改原理图库后更新当前原理图1.5 旋转和翻转1.6 悬…

Leetcode Hot 100刷题记录 -Day15(螺旋矩阵)

螺旋矩阵 问题描述&#xff1a; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输…

104. 二叉树的最大深度【 力扣(LeetCode) 】

零、LeetCode 原题 104. 二叉树的最大深度 一、题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二、测试用例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出…

[git] MacBook 安装git

文章目录 1.Mac Git 安装2. 开发者工具安装 CommandLineTools安装完成&#xff0c;错误解决 3. git 账户配置账户设置生成秘钥git 或者 gitee 仓库添加公钥查看全局账户命令多账户设置config文件测试连接clone到本地 1.Mac Git 安装 Mac一般自带Git工具&#xff0c;也就是说已…

监听html元素是否被删除,删除之后重新生成被删除的元素

/*** 监听水印是否清除和修改*/ export function watermarkClear() {// 添加水印的盒子let box: any document.querySelector(.dplayer-video-wrap)// 水印let watermark: any document.querySelector(.dplayer-logo)// 观察器的配置&#xff08;需要观察什么变动&#xff09…

css scrollbar-width: none 隐藏默认滚动条

.table-box{ flex: 1; overflow-y: scroll; scrollbar-width: none;} scrollbar-width: none; 隐藏默认滚动条

计算机二级自学笔记(程序题1部分)

(1)b fun函数内a数组作为参数&#xff0c;下方提供了b函数作为中间数组所以在这进行初始化 (2)2 第二个循环内将a数组分为1-27与27-55两部分&#xff0c;1-27存放在b数组的奇数位&#xff0c;27-55存放在b数组的偶数位 (3)a[k] 将b数组传递回数组a nm mn 已经有的参数…

使用 PyTorch 构建 MNIST 手写数字识别模型

引言 MNIST 数据集是一个经典的机器学习数据集&#xff0c;包含了 70,000 张手写数字图像&#xff0c;其中 60,000 张用于训练&#xff0c;10,000 张用于测试。每张图像都是 28x28 像素的灰度图像&#xff0c;并且已经被居中处理以减少预处理步骤。本文将介绍如何使用 PyTorch…

剪辑必备,6个可白嫖的视频素材网站。

找视频素材就上这6个网站&#xff0c;免费下载&#xff0c;赶紧收藏好&#xff01; 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 菜鸟图库网素材非常丰富&#xff0c;网站主要以设计类素材为主&#xff0c;高清视频素材也很多&#xff0c;像风景、植物、动物、人物、科技…

Redis(主从复制、哨兵模式、集群)概述及部署测试

目录 一、Redis 主从复制 1.1、Redis 主从复制概念 1.2、主从复制的作用 1.3、主从复制流程 1.4、搭建Redis 主从复制 二、Redis 哨兵模式 2.1、Redis 哨兵模式概念 2.2、哨兵模式原理 2.3、哨兵模式的作用 2.4、哨兵模式的结构 2.5、故障转移机制 2.6、主节点的选…

性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法

关于性能诊断的方法&#xff0c;我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手&#xff0c;包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么&#xff0c;这里我们归纳了自上而下的资源…

从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片

ffmpeg -i demo.mp4 -vf fps1 -start_number 0 %5d.jpg没有ffmpeg 的去官网下载&#xff0c; ffmpeg.org/download.html 下载好之后&#xff0c;解压进入bin文件夹 复制当前路径&#xff0c;下一步 配置环境 进入本机环境变量&#xff0c;把地址添加到path中 之后进入anacond…