今天给大家分享的是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的区别:

  1. 都可以新增key
  2. 当有重复key产生时,只保留一个key值
  3. 都可以删除key (字典使用del set使用remove)
  4. 字典和set集合都不可以使用可变对象来做键
  5. set集合是一组key(键),但是key没有对应的值,不像字典以键值对的形式存在
  6. set不支持索引取值,字典可以通过键来取值但是呢我们可以把键看做特殊的 '索引'

Python基础入门-集合的更多相关文章

  1. Python基础入门总结

    Python基础入门教学 基础中的基础 列表.元组(tuple).字典.字符串 变量和引用 函数 python视频教程下载 基础中的基础 解释型语言和编译型语言差距: Python概述 解释器执行原理 ...

  2. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  3. Python基础入门教程

    Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...

  4. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  5. PJzhang:python基础入门的7个疗程-one

    猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...

  6. Python基础入门教程,Python学习路线图

    给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...

  7. Python怎么样入门?Python基础入门教程

    给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...

  8. Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程

    目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...

  9. python 列表推导式 - python基础入门(16)

    截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高. 一.什么是推导式 推导式是从一个或者多个 ...

随机推荐

  1. yarn  workspace 开发示例

    此为官方示例: package.json { "private": true, "workspaces": [ "workspace-a", ...

  2. Redis、Memcache和MongoDB

    一.Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰 ...

  3. dockerfile初试之tomcat8封装

    前面学习了一些docker相关资料,有看到dockerfile这个东东,一时没看得太明白,理论给合实践是最好的学习方法,自己做一下就行了嘛.主要步聚记录如下: 0)环境 10.202.105.96   ...

  4. linux下PS1命令提示符设置

    linux下PS1命令提示符设置 在此文件最后一行添加:vim /etc/profileexport PS1='[\u@\h \W]\$ '   #这里必须用单引号.     \d :代表日期,格式为 ...

  5. webservice有关application/xop+xml的异常

    今天同事调用一个webservice时返回类似错误 响应消息的内容类型 multipart/related; type="application/xop+xml"; boundar ...

  6. git 远程仓 和 本地仓 记录

    一.远程仓添加信息后 ,本地环境修改信息后,上传 远程仓 coding=utf-8 本地仓 coding=utf-8 本地仓同步后 会提示存在冲突: (其中 HEAD 是当前非支的意思,可以理解为当前 ...

  7. mysql实战优化之二:limit优化(大表翻页查询时) sql优化

    mysql的表test中有20105119行数据.建立索引:data_status,place_cargo_status 场景1: SELECT id, resource_id, resource_t ...

  8. 命令行调用远程dubbo服务

    有时需要对dubbo服务做个简单的测试,或者想看下某个dubbo服务类所提供的方法,可以直接在命令行通过telnet的方式来查看和调用dubbo服务,方法如下: telnet 127.0.0.1 20 ...

  9. cocos2d-x v3.3开发环境配置

    开发环境: Win10 VS2012 链接:http://pan.baidu.com/s/1bn6S31d 密码:j2ol 配置Java SDK: 新建:JAVA_HOME =G:\Java\jdk1 ...

  10. linux中内存使用,swap,cache,buffer的含义总结

    首先介绍一下linux中内存是如何使用的.当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存来使用,也称为 ...