一、

1、字符串转集合

 s = 'hello'
se = set(s)
print(se)
 {'e', 'o', 'h', 'l'}

2、列表转集合

 l1 =  ['hello','python','nice']
se1 = set(l1)
print(se1)
 {'nice', 'python', 'hello'}

3、add:添加元素

 s = {1,2,3,4,5,6,}
s.add(9)
print(s)
 {1, 2, 3, 4, 5, 6, 9}

4、clear:清空

 s1 = {1,2,3,4,5}
s1.clear()
print(s1)
 set()

5、copy:复制


 s = {1,2,3,4,5,6,}
s0 = s.copy()
print(s0)

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

6、pop:随机删除一个元素

 s = {'hello',2,'python',3,4,5,6,'china',1}
s.pop()
print(s)

7、remove:删除指定元素,元素不存在时,会报错

 s = {'hello',2,'python',3,4,5,6,'china',1}
s.remove('python')
print(s)
s.remove(4)
print(s)
# s.remove(9) #会报错
# print(s)
 {1, 2, 3, 4, 5, 6, 'china', 'hello'}
{1, 2, 3, 5, 6, 'china', 'hello'}

8、discard:指定删除,元素不存在时,不会报错,会把原集合打印出来

 s = {'hello',2,'python',3,4,5,6,'china',1}
s.discard(2)
print(s)
s.discard('python')
print(s)
s.discard(9)
print(s)
 {1, 3, 4, 5, 6, 'hello', 'python', 'china'}
{1, 3, 4, 5, 6, 'hello', 'china'}
{1, 3, 4, 5, 6, 'hello', 'china'}

9、交集(intersection    & )、并集(union   | )、差集( difference   - )、交叉补集(symmetric_difference)

 py_s = {'张三','张思','王五','王六'}
lix_s = {'赵七','赵八','王五','王六' }
print('交集',py_s.intersection(lix_s))
print('交集',py_s & lix_s) print('补集',py_s.union(lix_s))
print('补集',py_s | lix_s) print('差集', py_s.difference(lix_s))
print('差集', py_s - lix_s)
print('差集',lix_s.difference(py_s))
print('差集',lix_s - py_s) print('交叉补集',py_s.symmetric_difference(lix_s))
print('交叉补集',py_s ^ lix_s)
 交集 {'王六', '王五'}
交集 {'王六', '王五'}
补集 {'赵八', '王五', '赵七', '王六', '张思', '张三'}
补集 {'赵八', '王五', '赵七', '王六', '张思', '张三'}
差集 {'张思', '张三'}
差集 {'张思', '张三'}
差集 {'赵八', '赵七'}
差集 {'赵八', '赵七'}
交叉补集 {'赵八', '赵七', '张思', '张三'}
交叉补集 {'赵八', '赵七', '张思', '张三'}

注:差集的先后顺序不一样,结果也不一样

10、difference_update   :更新完复制,即改变了原来的集合

 py_s = {'张三','张思','王五','王六'}
lix_s = {'赵七','赵八','王五','王六' }
py_s.difference_update(lix_s) #相当于 py_s = py_s - lix_s
print(py_s)
 {'张思', '张三'}

11、issubset:判断子集,issuperset:判断父集

 s1 = {1,2,3}
s2 = {1,2,3,4,5}
print('s1是s2的子集',s1.issubset(s2))
print('s2是s1的父集',s2.issuperset(s1))
 s1是s2的子集 True
s2是s1的父集 True

12、update:一次性可以更新多个值,即可以通过更新把多个值加入进去

 s1 = {1,2,3}
s2 = {1,2,3,4,5}
s1.update(s2)
print(s1)
 {1, 2, 3, 4, 5}

对比add功能,add一次性只能加一个值进去

13、frozenset这是一种特殊的定义集合的方式:它定义的集合不可变

 s=frozenset('hello')
print(s)

二、 集合的一些零散知识汇集

1、集合:具备三个条件:一是由不同元素组成;二是无序;三是其元素只能是数字、字符串、元素

也就是里面的元素必须不可哈希,(哈希简单理解就是  不可变的类型)

2、集合  可以增加、 删除、 但不能修改,所以集合是可变的。

3、集合可用于测试,用  in  来判断某元素是否是里面元素

三、字符串、 列表、元素、字典、集合 ,简单总结对比

1、字符串不可用索引来修改,因为不可变,但是可以用索引来取值

2、元组  是对列表的加工,其元素不可被修改,不能被增加 或 删除, 元组最后一个元素后面建议都加一个逗号,方便区分

3、元素 也可以 索引  、 切片 、 for 循环,

4、元组 有序,是可迭代对象

5、字典无序

可变:列表、字典

不可变:字符串、元组、数字

顺序访问:字符串、数字、元组

映射访问:字典

直接访问:数字

存放元素个数

容器类型:列表、元素、字典

元素类型:字符串

 

七、python沉淀之路--集合的更多相关文章

  1. 十六、python沉淀之路--迭代器

    一.迭代器 1.什么是迭代器协议:对象必须提供一个next方法,执行该方法要返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前走). 2.可迭代对象:实 ...

  2. 十八、python沉淀之路--生成器

    一.生成器 生成器总结:语法上和函数类似:生成器函数和常规函数几乎是一样的.他们都是使用def语句进行定义,差别在于生成器使用yield语句返回一个值,而常规函数使用return语句返回一个值.自动实 ...

  3. 十五、python沉淀之路--eval()的用法

    一.eval函数 python eval() 函数的功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法:eval(source[, globals[, locals]]) -> v ...

  4. 十二、python沉淀之路--内置函数

    1.abs函数,求绝对值. a = abs(-3) print(a) 返回:3 2.all函数:判断是否是可迭代对象. 官方解释:Return True if bool(x) is True for ...

  5. 九、python沉淀之路--递归、全局变量、局部变量、作用域

    一.递归 1.递归函数,同时使用嵌套,并且是将别的函数作用于调用函数里面 例1 num = [1,2,3,4,5] def add_one(i): return i+1 def reduce(i): ...

  6. 五、python沉淀之路--字典

    一. 1.根据序列,创建字典,并指定统一的值 v = dict.fromkeys(["],222) print(v) {': 222} 2.根据key 获取值,key不存在时,报错:get方 ...

  7. python沉淀之路~~整型的属性

    python的基础知识: 基本数据类型:int   str   list   tuple   dict   bool 一.整型的属性功能 1.工厂方法将字符串转换成整型 a = " b = ...

  8. 十九、python沉淀之路--装饰器

    一.实现装饰器的预备知识 装饰器 = 高阶函数 + 函数嵌套 + 闭包 1.高价函数定义: 1.函数接收的参数是一个函数名    2.函数的返回值是一个函数名    3.满足上述条件任意一个,都可称之 ...

  9. 十七、python沉淀之路--三元表达式、列表解析

    一.三元表达式 a = '骑车' res = '好天气' if a == '骑车' else '睡觉' print(res) 睡觉 解析:res = '好天气'        if a == '骑车' ...

随机推荐

  1. 字典树 trie树 学习

    一字典树 字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种   二.性质 根节点不包含字符,除根节点以外的每一个节点都只包含一个字符: 从根节点到某一节点,路径上经过的字符串连接起 ...

  2. Linux Shell编程 条件判断语法

    if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...

  3. 一个不成熟的编程员,写写 js 的面向对象

    其实感觉本人 js 并未入门,甚至说也是个不合格的编程员,什么面向对象都不会,一直都往 Object 里面填方法,假装很对象的样子. 但学习嘛,这道坎还是得多试几下的,说不定就跨过去了呢. 个人喜欢用 ...

  4. awk的输出格式控制:print 和printf

    1.两个函数和若干个内部变量控制awk的输出格式: 两个函数:print和printf 内部变量:OFS:输出的列间隔符,默认为tab;  ORS:输出的行间隔符,默认为\n printf更加自由化, ...

  5. 三 ip dns等配置

    一IP.端口.协议基本概念 ip的简单概念 互联网上的计算机,都会有一个唯一的32位的地址,ip地址 我们访问服务器,就必须通过ip地址 局域网里也有预留的ip地址  192/10/172.居于王的i ...

  6. Vue.js学习笔记 第七篇 表单控件绑定

    本篇主要说明表单控件的数据绑定,这次没有新的知识点 文本框 1.普通文本框 <div id="app-1"> <p><input v-model=&q ...

  7. android开发之如何将一般应用变身系统级应用【转】

    本文转载自:https://blog.csdn.net/zanelove/article/details/43953743 前提: ROOT过的手机 1,把代码编写好后,打包导出apk,copy到手机 ...

  8. Kubernetes Heapster

    Heapster是容器集群监控和性能分析工具,HPA.Dashborad.Kubectl top都依赖于heapster收集的数据. 但是Heapster从kubernetes 1.8以后已经被遗弃了 ...

  9. ZooKeeper服务-数据模型

    ZooKeeper是一个具有高可用性的高性能协调服务. 数据模型 ZooKeeper维护着一个树形层次结构,树中的节点被称为znode.Znode可以用于存储数据,并且有一个与之相关联的ACL(Acc ...

  10. 如何编写 Makefile

     1. 目标 依赖 命令 make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的 ...