zoukankan      html  css  js  c++  java
  • Python基本知识(6)——集合

    1、集合的介绍

      集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。

    1.1、集合是如何定义的

     1 #集合的定义方式1
     2 set1 = set({1,2,3})
     3 #集合的定义方式2
     4 set2 = {1,2,3}
     5 print(set1,set2)
     6 
     7 #这种会报错,因为集合中的元素必须是可哈希的,也即是不可变的
     8 '''
     9 set3 = {1,[2,3],{4,5}}
    10 print(set3)
    11 '''
    集合的定义

    1.2、集合的增删查

      集合没有改,因为集合中的元素是不可变的。

     1 # 集合的增加
     2 set4 = {'a','b','c','d'}
     3 
     4 # add()
     5 set4.add('e')
     6 print(set4)
     7 # result:{'b', 'a', 'd', 'e', 'c'}---验证了集合的无序
     8 
     9 # update()---类似于extend,迭代添加元素
    10 set4.update('fgh')
    11 print(set4)
    12 # result:{'d', 'g', 'a', 'c', 'e', 'h', 'b', 'f'}
    集合的增
     1 # 集合的删除
     2 
     3 # 1、pop()---随机删除
     4 set5 = {'a','b','c','d'}
     5 set5.pop()
     6 print(set5,set5.pop())# 删除了两次,且其有返回值。
     7 # result:{'b', 'd'} a
     8 
     9 # 2、remove()---按元素去删
    10 set6 = {'a','b','c','d'}
    11 set6.remove('a')
    12 print(set6)
    13 # result:{'d', 'b', 'c'}
    14 
    15 # 3、clear()
    16 set7 = {'a','b','c','d'}
    17 set7.clear()
    18 print(set7)
    19 # result:set()
    20 
    21 # 4、del
    22 '''
    23 set8 = {'a','b','c','d'}
    24 del set8
    25 print(set8)
    26 '''
    27 # result:NameError: name 'set8' is not defined
    集合的删
    1 # 集合的查
    2 set9 = {'a','b','c','d'}
    3 for i in set9:
    4     print(i)
    5 # result:
    6 # b
    7 # c
    8 # a
    9 # d
    集合的查

    1.3、集合的交集、反交集、并集、差集、子集、超集。

    1 # 集合的交集
    2 set1 = {1,2,3,4,5}
    3 set2 = {4,5,6,7,8}
    4 print(set1 & set2)
    5 # result:{4,5}
    6 print(set1.intersection(set2))
    7 # result:{4,5}
    交集
    1 # 集合的反交集
    2 set1 = {1,2,3,4,5}
    3 set2 = {4,5,6,7,8}
    4 print(set1 ^ set2)
    5 # result:{1, 2, 3, 6, 7, 8}
    6 print(set1.symmetric_difference(set2))
    7 # result:{1, 2, 3, 6, 7, 8}
    反交集
    1 # 集合的并集
    2 set1 = {1,2,3,4,5}
    3 set2 = {4,5,6,7,8}
    4 print(set1 | set2)
    5 # result:{1, 2, 3, 4, 5, 6, 7, 8}
    6 print(set1.union(set2))
    7 # result:{1, 2, 3, 4, 5, 6, 7, 8}
    并集
    1 # 集合的差集
    2 set1 = {1,2,3,4,5}
    3 set2 = {4,5,6,7,8}
    4 print(set1 - set2)
    5 # result:{1, 2, 3}
    6 print(set1.difference(set2))
    7 # result:{1, 2, 3}
    差集
     1 # 集合的子集和超集
     2 set1 = {1,2,3}
     3 set2 = {1,2,3,4,5,6}
     4 print(set1 < set2)# 子集
     5 # result:True
     6 print(set1.issubset(set2))# 子集
     7 # result:True
     8 print(set2 > set1)# 超集
     9 # result:True
    10 print(set2.issuperset(set1))# 超集
    11 # result:True
    子集和超集

    1.4、集合的一个简单小用途,以及不可变集合frozenset的介绍

    1 # 集合的用途之一
    2 # 将以下列表的重复元素去掉
    3 lst = [1,2,3,4,3,1,9,8]
    4 print(set(lst))
    5 # result:{1, 2, 3, 4, 8, 9}
    集合的用途之一
    1 # set是可变集合,frozenset是不可变集合
    2 set1 = set('hello')
    3 print(set1,type(set1))
    4 # result:{'h', 'e', 'l', 'o'} <class 'set'>
    5 set2 = frozenset('hello')
    6 print(set2,type(set2))
    7 # result:frozenset({'e', 'o', 'l', 'h'}) <class 'frozenset'>
    frozenset
  • 相关阅读:
    sql server 中拥有相同字段值的记录某个字段合并问题解答
    一个SQL语句实例
    Sql server 2005中output用法解析
    SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)转载
    .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
    SQLServer Case具有两种格式:简单Case函数和Case搜索函数
    sql server compute by 子句用法实例
    vs2008 一件悲剧的事情
    SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)
    SQL Server2005中四种排名函数的使用
  • 原文地址:https://www.cnblogs.com/missdx/p/10877254.html
Copyright © 2011-2022 走看看