Set集合:是Python的一个基本数据类型。一般不是很常用。Set中的元素是不重复的,无序的,里面的元素必须是可hash的(int,str,tuple,bool)。我们可以这样来计Set就是dict类型的数据但是不保存value,只保存key,set也用{}表示。

注意:set集合中的元素必须是可hash的,但是set本身是不可hash的,set是可变的。【即为:set内部不能有set】

  1. #定义一个set集合
  2. s = {'a'}
  3. print(s)
  4. print(type(s))
  5.  
  6. #实例化
  7. s1 = set()#声明一个空set集合
  8.  
  9. #s3 = {123,[12,34,4]} #报错 TypeError: unhashable type: 'list'
  10. #s3 = {123,(12,34,4)} #正常
  11. #s4 = {123,{12,34,4}} #报错

  执行结果:

  1. {'a'}
  2. <class 'set'>

  set集合中的元素是不重复的,且无序的

  1. #set中的元素是不重复的,且无序的
  2. s2 = {'abc','12','bd','abc',True,False}
  3. print(s2) #去重 {False, True, '12', 'abc', 'bd'}

set中的常用操作:

  1)增加

  1. >>> s = {"张三","李四","王五"}
  2. >>> s.add("赵六") #重复的内容不会被添加到set集合中
  3. >>> s
  4. {'王五', '李四', '赵六', '张三'}
  5. >>> s.update("薛七") #迭代更新 即把“薛”和“七”分别加入set集合
  6. >>> s
  7. {'王五', '薛', '七', '李四', '赵六', '张三'}

  2)删除

  1. >>> s.pop()#随机删除一个元素
  2. '王五'
  3. >>> s.remove("张三")#直接删除元素,如果不存在这个元素,删除会报错
  4. >>> s
  5. {'薛', '七', '李四', '赵六'}
  6. >>> s.clear()#清空set集合需要注意的是set集合如果是空的,打印出来是set(),因为要和dict区分
  7. >>> s
  8. set()

  3)修改

  set集合中的数据没有索引,也没用办法去定位一个元素,所以没有办法进行直接修改。我们可以采用先删除后添加的方式来完成修改操作。

  1. >>> s = {"张三","李四","王五"}
  2. >>> s.remove("张三")
  3. >>> s.add("赵六")
  4. >>> s
  5. {'王五', '李四', '赵六'}

  4)查询

  set是一个可迭代对象,可以进行for循环

  1. >>> for el in s:
  2. print(el)
  3.  
  4. 王五
  5. 李四
  6. 赵六

  5)常用操作

  1. #求交集
  2. >>> s1 = {"张三","李四","王五"}
  3. >>> s2 = {"王五","赵六","薛七"}
  4. >>> s1 & s2
  5. {'王五'}
  6. >>> s1.intersection(s2)
  7. {'王五'}
  8.  
  9. #求并集
  10. >>> s1 | s2
  11. {'王五', '薛七', '李四', '赵六', '张三'}
  12. >>> s1.union(s2)
  13. {'王五', '薛七', '李四', '赵六', '张三'}
  14.  
  15. #求差集
  16. >>> s1 - s2
  17. {'李四', '张三'}
  18. >>> s1.difference(s2)
  19. {'李四', '张三'}
  20.  
  21. #求反交集 集两个set集合中单独存在的数据元素
  22. >>> s1 ^ s2
  23. {'张三', '李四', '赵六', '薛七'}
  24. >>> s1.symmetric_difference(s2)
  25. {'张三', '李四', '赵六', '薛七'}
  26.  
  27. #子集
  28. >>> s3 = {"张三","李四"}
  29. >>> s4 = {"张三","李四","王五"}
  30. >>> s1 < s2
  31. False
  32. >>> s3 < s4
  33. True
  34.  
  35. #超集
  36. >>> s1 > s2
  37. False
  38. >>> s3.issuperset(s4)
  39. False
  40. >>>

  

python基础知识 -- set集合的更多相关文章

  1. Python基础知识:集合

    1.集合(set)是一个存放在中括号内的无序,不重复的序列.例如:set = {'1','12','25'} 2.创建集合的两种方法: set = {1,2,3} 中括号直接创建 set = {[1, ...

  2. python基础知识笔记-集合

    集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...

  3. python基础知识(集合)

    集合 可变集合set()/不可变集合frozenset() {}  大写的拉丁字母 用于保存不重复元素.无序不能通过索引来获取 集合的创建 空集合 使用set()函数 变量名 = set() 集合的添 ...

  4. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  5. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  6. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  7. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  8. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  9. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

随机推荐

  1. java web的安全约束--表单的验证

    例子,表单和JDBCRealm的安全验证 参考了一篇文章http://www.cnblogs.com/dyllove98/archive/2013/07/31/3228698.html 1.要在wab ...

  2. Flask中数据库关联与分页与cache缓存(十二)

    1 一对多(One To Many) 表示一对多的关系时,在子表类 Post 中需要通过 foreign key (外键)引用父表类 User 在Post类中指定ForeignKey: class P ...

  3. 利用Surfingkeys和tampermonkey效率操作网页

    tampermonkey可以实现网页载入后自动进行某些操作,适合有规律的操作,实现完全自动化. 而Surfingkeys可以实现用各种按键实现各种功能,功能全部用JavaScript写,自定义性更强.

  4. 随tomcat启动的Servlet程序

    由于需要做一定定时轮询程序,自己写了一个Servlet小程序,在Servlet里面的Init函数中做一个Timer,定时执行程序. 代码如下: public class MailStartup  ex ...

  5. 【[Violet]樱花】

    就是化柿子 我们求 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] 的正整数解的个数 喜闻乐见的化柿子了 \[\frac{x+y}{xy}=\frac{1}{n!}\ ...

  6. 使用ParseExact方法将字符串转换为日期格式

    实现效果: 知识运用: DateTime结构的ParseExact方法 public static DateTime ParseExact(string s,string format,IFormat ...

  7. webstorm识别php代码

    在 setting --editor--filetype---找到html 在下面的框里点右边加好,添加*.php

  8. FastJSON、Gson、Jackson(简单了解使用)

    下载地址(maven) Jackson:http://mvnrepository.com/search?q=jackson FastJson:http://mvnrepository.com/sear ...

  9. 【luogu P1195 口袋的天空】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1195 嗯~我是被题目背景吸引到才做的,想吃棉花糖啦! 话说回来,这道题其实很容易就能想明白,k棵最小生成树. ...

  10. HTML5 小实例

    1.时钟: <!doctype html> <html> <head></head> <body> <canvas id=" ...