zoukankan      html  css  js  c++  java
  • 集合 & 深浅copy

    集合:

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

    创建

    set1 = set({1,2,3})
    或者直接创建set2 = {1,2,3}
    

    集合的增删查:

    增:
    add    set1.add('女生')
    update    set1.update('abc') #迭代,类似于列表的extend
    删:
    pop     set1.pop()           #随机删除,有返回值返回的是删除的元素
    remove  set1.remove('2')     #按元素删除
    clear   set1.clear()         #清空集合,结果为:set()表示空集合
    del     del  set1            #删除整个集合
    查:
    for i in set1:
        print(i)

    集合运算

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    交集:set3 = set1 & set2   print(ste3)     #结果为{4,5}
          或者ste1.intersection(set2)
    并集:set3 = set1 | set2   print(set3)     #结果为{1,2,3,4,5,6,7,8}
          或者set1.union(set2)
    反交集:set3 = set1 ^ set2   print(ste3)    #结果为{1,2,3,6,7,8}
          或者set1.synetric_difference(set2)
    差集:set3 = set1 - set2   print(ste3)      #结果为{1,2,3}set1独有的
          set3 = set2 - set1   print(ste3)     #结果为{6,7,8}set2独有的
          或者set1.different(set2)

    子集与超集

    子集:
    set1 = {1,2,3}
    set2 = {1,2,3,4,5}
    print(set1 < set2)                   #这两个相同,都说明set1是set2的子集
    或者print(set1.issubset(set2))
     
    超集:
    set1 = {1,2,3}
    set2 = {1,2,3,4,5}
    print(set2 > set1)            #这两个相同,都说明set2是set1的超集
    或者print(set2.issubset(set1))

    去除列表中重复的元素

    li = [1,2,3,4,5,5,5,6]
    set1 = set(li)             #先把列表转化为集合
    li = list(set1)            #再把集合转化为列表
    print(li)

    frozenset

    set是可变数据类型,把set变为不可变数据类型用frozenset
    s = frozenset('barry')
    print(s,type(s))
    可循环打印:
    for i in s:
        print(i)

    深浅copy
    copy对浅copy来说,只是在内存中重新创建了开辟了一个空间存放一个新列表,但是新列表中的元素与源列表中的元素是公用的。
    深拷贝deepcopy:对深拷贝来说,列表是内存中重新创建的,列表中的可变数据类型是重新创建的,列表中的不可变数据类型是公用的。

  • 相关阅读:
    MVP on dot NET Episode 1
    以服务器端为中心的 ASP.NET AJAX 模式 (Part 2 Control)
    以服务器端为中心的 ASP.NET AJAX 模式 (Part 1 Behavior)
    编写 iPhone Friendly 的 Web 应用程序 (Part 6 iUI)
    Vista 为什么要引入 UAC
    Windows 就是一个带 UI 的命令行
    ASP.NET AJAX 4.0 Preview 3 (Part 2 ASP.NET AJAX Template)
    如何订阅MVP on dot NET(或其它播客) iTunes版
    深入理解 ASP.NET 动态控件 (Part 5 编译实验)
    使用 .NET 实现 Ajax 长连接 (Part 2 Mutex Wait & Signal)
  • 原文地址:https://www.cnblogs.com/twinkle-/p/10475834.html
Copyright © 2011-2022 走看看