任务描述
本关任务:给定一个集合,使用集合的内置函数来删除集合内的非整型数据,然后将集合转换成列表并对其进行排序。
相关知识
为了完成本关任务,你需要掌握 Python 中的集合类型。
集合
Python 中的集合是用于表示一个无序且不重复的序列。集合和字典相同,是使用{}
来表示的,但是集合并不是键值对。
# 集合内的元素只能是不可变类型的数据,列表和字典不能成为集合内的元素
agg = {1,"a",(1,2,3)} # 创建了一个集合
print(type(agg))
执行结果:
<class 'set'>
集合并不是不可变类型的数据,所以它可以进行增加和删除元素的操作:
- 增加元素:add() 和 update() 两种方法。
agg = {1,"a",(1,2,3)}
# add()可以在集合中任意位置添加单个元素,如果添加的元素在集合中已存在,则集合不发生改变
agg.add("b")
print(agg)
{1, 'a', 'b', (1, 2, 3)}
agg = {1,"a",(1,2,3)}
# update()可以在集合中添加单个或多个元素
agg.update("b")
print(agg)
agg.update({4,5,6}) # 添加多个元素时,需要用集合的形式来传递参数
print(agg)
{1, 'a', 'b', (1, 2, 3)}
{1, 'a', 4, 5, 6, 'b', (1, 2, 3)}
- 删除元素:remove() 和 discard() 两个方法。
agg = {1,"a",(1,2,3)}
# remove()传入的参数为想要删除的元素,如果该元素在集合中不存在,代码将报错
agg.remove("a")
print(agg)
{1, (1, 2, 3)}
已知字典和集合使用的是同样的符号表示,那么我们使用x = {}
创建的是一个空集合还是一个空字典呢?这样创建的是一个空字典,如果我们想要创建一个空集合时,我们需要使用到 set() 来创建一个空集合。
agg = set()
print(agg)
print(type(agg))
执行结果:
set()
<class 'set'>
set() 还可以将其它可迭代类型的数据转换成集合。
list1 = [1,2,3,4]
agg = set(list1)
print(agg)
执行结果:
{1, 2, 3, 4}
集合的所有内置方法如下表所示。
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除两个集合都包含的元素 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集,intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False;调用方法:set1.issubset(set2),set1 和 set2 分别表示 2 个不同的集合 |
issubset() | 判断指定集合是否为该方法参数集合的子集;调用方法:set1.issubset(set2),set1 和 set2 分别表示 2 个不同的集合 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集;调用方法:set1.issuperset(set2),set1 和 set2 分别表示 2 个不同的集合 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。输出格式请参考测试集中的预期输出。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧 “测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
"""
任务:给定一个列表,利用集合的性质以及它的内置函数来对列表进行去重,打印去重后的列表。
"""
list1 = [453,5,3,4,5,5,7,6,77,87,8,89,78,78,86,78,56,75,623,4523,45,234,778,9,78,989,0,8,98,68,67,856,7,46,45,6]
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 利用集合的性质以及它的内置函数来对列表进行去重,打印去重后的列表
set1=[]
a=set(list1)
for i in a:
set1.append(i)
print(set1)
##########End##########