set_lst = [

  ('集合容器不可哈希',),

  ('集合中的元素必须可哈希',),

  ('集合是无序的',),

  ('集合自动去重',),

  ('增',),

  ('删',),

  ('查',),

  ('集合运算',),

  ('练习',),

]

集合容器不可哈希

  >>>hash(set())

  TypeError: unhashable type: 'set'

集合中的元素必须可哈希

  >>>num_set = {1, 2, 3, [4]}

  TypeError: unhashable type: 'list'

集合是无序的

  >>>num_set = {1, 2, 3, 4}

  >>>num_set[0]

  TypeError: 'set' object does not support indexing

集合自动去重

  >>>num_set = {1, 1}

  >>>num_set

  {1}

  >>>num_set = {1, 2}

  >>>num_set.add(3)

  >>>num_set

  {1, 2, 3}

  >>>num_set.update([4, 5])

  >>>num_set

  {1, 2, 3, 4, 5}

  set.pop()理论上是移除并返回任意的集合元素

  集合是无序的,所以要删除某一元素时,用remove()方法会更好一些

  

  (PS: Python 3.6.2)

  

  >>>num_set = {1, 2, 3, 4, '5', 6}

  >>>num_set.pop()

  1

  >>>num_set.remove('5')

  >>>num_set

  {2, 3, 4, 6}

  >>>num_set.clear()

  >>>num_set

  set()

  >>>del num_set

  >>>num_set

  NameError: name 'num_set' is not defined

  >>>num_set = {1, 2}

  >>>for i in num_set:

  ...  i

  ...

  1

  2

集合运算

  >>>set_1 = {1, 2, 3, 4}

  >>>set_2 = {4, 5, 6, 7}

  交集

    >>>set_1 & set_2

    {4}

  并集

    >>>set_1 | set_2

    {1, 2, 3, 4, 5, 6, 7, 8}

  反交集

    >>>set_1 ^ set_2

    {1, 2, 3, 5, 6, 7, 8}

  差集

    >>>set_1 - set_2

    {1, 2, 3}

  子集与超集

    >>>set_1 < set_2

    False

    >>>set_1 > set_2

    False

练习

  运用集合的知识为列表去重

    >>>lst = [1, 1, 2, 2, 3, 4]

    >>>lst = list(set(lst))

    >>>lst

    [1, 2, 3, 4]

      

    

Python中的set的更多相关文章

  1. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  2. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

  3. python中的默认参数

    https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

  4. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  5. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

  6. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  7. python2.7高级编程 笔记二(Python中的描述符)

    Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

  8. python cookbook 学习系列(一) python中的装饰器

    简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...

  9. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  10. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

随机推荐

  1. php面试题分享

    1.nginx使用哪种网络协议? nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http fastcgi负责调度进程 2. <? echo 'hello tush ...

  2. Reactor Pattern and Non-blocking IO--reference

    reference from:http://www.cs.bgu.ac.il/~spl051/Personal_material/Practical_sessions/Ps_12/ps12.html ...

  3. SpringMVC10 InitBinder 注册自定义编辑器

    1.配置web.xml文件 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...

  4. 八个cmd 命令

    一,ping 它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP ...

  5. OC与JS交互前言

    OC与JS交互过程中,可能会需要使用本地image资源及html,css,js文件,这些资源应该如何被加载? 一.WebView加载HTML UIWebView提供了三个方法来加载html资源 1.  ...

  6. MobaXterm连接远程Linux服务器

    MobaXterm是一个X服务器和一组的Unix命令(GNU/ Cygwin的)封装在一个单一的便携式exe文件的增强终端. MobaXterm包括一个巨大的multitab原生的Windows终端. ...

  7. DB2数据库常用语句

    1.快速清空大量数据表数据,但是还原不了 alter table rm_customer activate not logged initially with empty table2.大量导出表语句 ...

  8. linux 命令——11 nl (转)

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  9. 在PHP中读取二进制文件

    很多时候,数据并不是用文本的方式保存的,这就需要将二进制数据读取出来,还原成我们需要的格式.PHP在二进制处理方面也提供了强大的支持. 任务 下面以读取并分析一个PNG图像的文件头为例,讲解如何使用P ...

  10. 支持向量机: Maximum Margin Classifier

    支持向量机即 Support Vector Machine,简称 SVM .我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个 ...