zoukankan      html  css  js  c++  java
  • 七、python沉淀之路--集合

    一、

    1、字符串转集合

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

    2、列表转集合

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

    3、add:添加元素

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

    4、clear:清空

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

    5、copy:复制

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

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

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

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

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

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

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

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

     1 py_s = {'张三','张思','王五','王六'}
     2 lix_s = {'赵七','赵八','王五','王六' }
     3 print('交集',py_s.intersection(lix_s))
     4 print('交集',py_s & lix_s)
     5 
     6 print('补集',py_s.union(lix_s))
     7 print('补集',py_s | lix_s)
     8 
     9 print('差集', py_s.difference(lix_s))
    10 print('差集', py_s - lix_s)
    11 print('差集',lix_s.difference(py_s))
    12 print('差集',lix_s - py_s)
    13 
    14 print('交叉补集',py_s.symmetric_difference(lix_s))
    15 print('交叉补集',py_s ^ lix_s)
     1 交集 {'王六', '王五'}
     2 交集 {'王六', '王五'}
     3 补集 {'赵八', '王五', '赵七', '王六', '张思', '张三'}
     4 补集 {'赵八', '王五', '赵七', '王六', '张思', '张三'}
     5 差集 {'张思', '张三'}
     6 差集 {'张思', '张三'}
     7 差集 {'赵八', '赵七'}
     8 差集 {'赵八', '赵七'}
     9 交叉补集 {'赵八', '赵七', '张思', '张三'}
    10 交叉补集 {'赵八', '赵七', '张思', '张三'}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    5、字典无序

    可变:列表、字典

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

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

    映射访问:字典

    直接访问:数字

    存放元素个数

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

    元素类型:字符串

     
  • 相关阅读:
    sql 一对多变成一对多的最后一条记录的做法
    2.如何优化操作大数据量数据库(改善SQL语句)
    asp数据操作类DB
    4.如何优化操作大数据量数据库(几十万以上数据)(如何选择聚合索引)
    【转】asp中记录集对象的getrows和getstring用法
    用DB类写新闻系统1
    Apache+Tomcat配置负载均衡
    C# CAD 几何图形周围创建尽可能小的圆 使用 .NET 在 2D AutoCAD
    C# Cad 2007 工具栏 工具条创建
    C# Cad 拉伸 关键 GetStretchPoints MoveStretchPointsAt
  • 原文地址:https://www.cnblogs.com/jianguo221/p/8950339.html
Copyright © 2011-2022 走看看