educoder/python第1关:学习-Python集合之应用一
任务描述
本关任务:给定一个集合,使用集合的内置函数来删除集合内的非整型数据,然后将集合转换成列表并对其进行排序。
相关知识
为了完成本关任务,你需要掌握 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)}
使用 discard() 删除元素的方法与 remove() 一致,两者的区别在于,discard() 删除元素时,如果元素在集合中不存在,代码也不会报错。
已知字典和集合使用的是同样的符号表示,那么我们使用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##########
educoder/python第1关:学习-Python集合之应用一相关推荐
- 学python语言用什么软件-Python是什么?学习Python用什么编译器?
原标题:Python是什么?学习Python用什么编译器? Python是一个非常好用的程序语言,开发的速度非常快.Python的设计哲学是优雅.明确.简单.因此,Perl语言中总是有多种方法来做同一 ...
- python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门
原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...
- 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗
献给Python初学者 零基础学习Python能学会吗 时间:2018-01-08 来源:零基础学习Python方法讲解 零基础学习Python能学会吗?这个问题几乎是所有初学Python的小 ...
- python基础知识资料-学习Python列表的基础知识汇总
千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...
- 学习python课程_想学习Python吗? 这是我们的免费4小时互动课程
学习python课程 Python is a popular, versatile and easy-to-learn language. It's the go-to language for AI ...
- python 字节流分段_学习Python又多了一种选择,原来是他!
来源 | 异步 | 文末赠书 Python以功能完备而著称,正所谓"功能齐备"(batteries included).由Python的众多模块(module)组建起来的生态系统, ...
- 学python多贵_老男孩学习Python多少钱,学习Python贵吗?
而且现在不少人都想要参加python培训,在进行python培训之前,大家最关注的的莫过于培训机构好不好的问题了,当然了收费也是我们需要考虑的一点.当然选择培训机构不能只看费用方面的,还需要考虑师资力 ...
- python如何询问_学习Python问?
感谢各位捧场,今天是2017年的第一篇,因为在之前不断收到小伙伴们在后台关于Pytho学习相关的留言,所以想在今年开篇先做一个答疑,方便各位更好的学习: 1.现在学习Python2还是python3? ...
- 自学python需要的软件-学习Python,从入门到精通,其实只需要两个月就够了
毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习计划, ...
- 如何自学python数据分析-如何轻松学习Python数据分析?
今天这篇文章来聊聊如何轻松学习『Python数据分析』,我会以一个数据分析师的角度去聊聊做数据分析到底有没有必要学习编程.学习Python,如果有必要,又该如何学习才能做到毫不费力. 1. 实际的工作 ...
最新文章
- Android N Display Size
- 基于 Redis 实现的分布式锁
- 编写高效的Android代码
- windows mobile开发循序渐进(6)windows mobile device center 使用问题
- 机器学习笔记(十五):推荐系统
- 40 行代码搞定主题词提取
- duckduckgo 国内_DuckDuckGo的Instant Answers项目的7课
- iperf服务器如何显示收到的包速率,使用Iperf诊断网络速度
- 苹果手机又刷屏啦!!它是如何做到的?
- 什么是 Rax,以及 Rax 的特点
- 玄铁C910内存管理与地址转换技术
- 第31章 	TIM—基本定时器—零死角玩转STM32-F429系列
- 【Unity3D应用案例系列】答题系统开发
- 【数据结构与算法】冒泡排序算法(BubbleSort)
- Excel学习笔记——基础篇
- 2018最新精选的Go框架,库和软件的精选列表 二
- Java并发包学习(CountDownLatch,Seamphore,CyclicBarrier,Exchanger)
- ]JPEG图片存储格式及原理
- mac下GLTools的安装
- Could not initialize class ru.yandex.clickhouse.ClickHouseUtil