Python基础入门-集合
今天给大家分享的是python中集合(set)的概念,集合这个词其实和高中学的数学集合的概念很相近,或者作为初学者你就可以把它理解为数学当中的集合。在python中集合(set)是由一个个键组成的,但是这些键没有对应的值。大家在学习集合的时候可以和多和字典对比着来看。集合的使用在python3中较为明显,那么,接下来一一给大家演示关于集合的基本使用:
定义集合
1.首先我们定义一个集合(set)
C:\Users\Model>python3
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> a = set([1,2,3,4,5])
>>> a
{1, 2, 3, 4, 5}
向集合中添加元素
2.我们往集合中添加一个集合中已有的元素,看看是什么情况,我们这里使用的是add方法,看演示:
>>> a = set([1,2,3,4,5])
>>> a
{1, 2, 3, 4, 5}
>>> a.add(1) #添加一个重复的键
>>> a
{1, 2, 3, 4, 5}
>>>
由此总结出,集合中的键是唯一的,也是不允许有重复键的。
向集合中新增不可变对象
3.如果我们向集合中新增的元素是一个可变对象呢?结果又会发生什么样的变化呢?
>>> a = set([1,2,3,4,5])
>>> a
{1, 2, 3, 4, 5}
>>> a.add(1)
>>> a
{1, 2, 3, 4, 5}
>>>
>>> a.add(['ac','bc']) #向集合中新增可变对象列表 报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list' #不能够被哈希
>>>
取交集和并集
4.我们可以通过set集合来取交集和并集。先看一个取交集的例子。
>>> set1=set([1,2,3,4,5])
>>> set1
{1, 2, 3, 4, 5}
>>> set2=set([1,2,3,4,5,'hello',999])
>>> set1 & set2
{1, 2, 3, 4, 5}
我们定义了一个set1和set2使用 & 符合进行取交集的操作。取得是set1和set2公共的部分(1,2,3,4,5),我们在继续取集合(set)中的并集,来看一个例子:
>>> set1=set([1,2,3,4,5])
>>> set1
{1, 2, 3, 4, 5}
>>> set2=set([1,2,3,4,5,'hello',999])
>>> set1 & set2
{1, 2, 3, 4, 5}
>>> set1 | set2
{1, 2, 3, 4, 5, 999, 'hello'}
>>>
还是拿set1和set2的例子举例。取并集使用的链接符合是 | 可以看到最后的结果是:(1,2,3,4,5,999,'hello') 是不是很好理解呢?
移除集合中的元素
5.我们使用remove方法移除集合中的某个元素,remove()后面只能跟一个参数
>>> set2=set([1,2,3,4,5,'hello',999])
>>> set2.remove(999)
>>> set2
{1, 2, 3, 4, 5, 'hello'}
>>> set2.remove(1,2)
#remove()只能跟一个参数
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: remove() takes exactly one argument (2 given) #remove()只能跟一个参数 >>>
字典和集合的区别
6.最后我们来总结一下关于Python中的字典和集合的区别
字典和set的区别:
- 都可以新增key
- 当有重复key产生时,只保留一个key值
- 都可以删除key (字典使用del set使用remove)
- 字典和set集合都不可以使用可变对象来做键
- set集合是一组key(键),但是key没有对应的值,不像字典以键值对的形式存在
- set不支持索引取值,字典可以通过键来取值但是呢我们可以把键看做特殊的 '索引'
Python基础入门-集合的更多相关文章
- Python基础入门总结
Python基础入门教学 基础中的基础 列表.元组(tuple).字典.字符串 变量和引用 函数 python视频教程下载 基础中的基础 解释型语言和编译型语言差距: Python概述 解释器执行原理 ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Python基础入门教程
Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- PJzhang:python基础入门的7个疗程-one
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...
- Python基础入门教程,Python学习路线图
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- Python怎么样入门?Python基础入门教程
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程
目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...
- python 列表推导式 - python基础入门(16)
截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高. 一.什么是推导式 推导式是从一个或者多个 ...
随机推荐
- F4NNIU 学习目录 (2018-08-22)
F4NNIU 学习目录 语言 C 语言 C 语言程序设计进阶 在线刷题 https://leetcode-cn.com/problemset/all/ 工具 Git 版本管理 在线教程 在线教程
- JAVA中常见异常类
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...
- 不让activity显示UI的办法
直接把 //setContentView(R.layout.activity_welcome); 注释掉就是了
- 善待Erlang 代码 -- 巧用 user_default
这是一篇水文 ----------------------------------------------------- 很好用的一个技巧 http://www.erlang.org/doc/man/ ...
- strtotime出现时区问题不一致的解决方法
学习源头:https://blog.csdn.net/longjuanfengzc/article/details/80622842 https://segmentfault.com/q/101000 ...
- FPGA应用及ARM-FPGA架构举例
FPGA的应用非常广泛,通信领域,视频图像处理领域,汽车电子领域,消费电子领域,工业领域,数据处理领域等,都能看到FPGA的身影. 在设计中,FPGA通常和其他处理IC架构,完成整个设计.FPGA-A ...
- MATLAB 02
对一组数据作线性回归,并绘图 clear all; % 输入数据x和y x = [ ]'; y = [11 13 14 15 16 18 20 21 22 25 26 28 29 31]'; x = ...
- git 远程仓 和 本地仓 记录
一.远程仓添加信息后 ,本地环境修改信息后,上传 远程仓 coding=utf-8 本地仓 coding=utf-8 本地仓同步后 会提示存在冲突: (其中 HEAD 是当前非支的意思,可以理解为当前 ...
- java代码逆序输出数字
总结:请告诉我更好的方法~~~总觉得不好. package com.badu; import java.util.Scanner; //逆序输出数字: // class fa { public sta ...
- Unity3D的坑系列:你真想发布WinPhone版吗?
Unity 4.2加入了支持WinPhone发布,本来是一件令人开心的事情,不过最近听了Unity技术支持的一个事情后就发现,原来发布WinPhone版也是一个坑. 实际上如果你用Unity做小游戏发 ...