zoukankan      html  css  js  c++  java
  • 8、集合类型、文件处理

      补充:setdefault与update的区别

      例:d={‘’name'':''egon'',''age'':18,''gender'':''xxx''}

      d.update({''gender'':''male''})

      res = d.setdefault(''gender'',''male'')

      print(d)输出结果为d={‘’name'':''egon'',''age'':18,''gender'':''male''}

      print(res)输出结果为d={‘’name'':''egon'',''age'':18,''gender'':''xxx''}

    一、集合

      例:

     pythons = ["tom","jack","alex","egon","lxx"]
     linuxs = ["lili","hanmeimei","张三","egon","lxx","jay"]
    
    
    #找出即学linux与pythopn的学生
    
     l=[]
     for name in pythons:
         if name in linuxs:
             l.append(name)
    
     print(l)

      通过上述的for循环可以达到目的,但是集合在比较方面有便利之处

      1、用途:

        去重:

        (1)无法保证顺序

    msg = "hello"
    res=set(msg)
    print(''.join(res))
    
    names = ['egon','lxx','lili',"egon","egon"]
    print(list(set(names)))

        (2)只能针对不可变的元素去重

    students_info = [
        {"name":"egon","age":18,"gender":"male"},
        {"name":"tom","age":19,"gender":"male"},
        {"name":"jack","age":38,"gender":"female"},
        {"name":"egon","age":18,"gender":"male"},
        {"name":"egon","age":18,"gender":"male"},
    ]
    
    new_l = []
    for info in students_info:
        if info not in new_l:
            new_l.append(info)
    
    print(new_l)

        (3)集合内的元素无法重复,只能打印出一个

      2、集合内的关系运算

        定义:在{}内用逗号分隔开多个元素

        数据类型转换:工厂函数为set

        

    res = set("hello")
    print(res)
    
    s = set()
    print(s,type(s))

      3、通常操作与内置方法

      

    pythons = {"tom","jack","alex","egon","lxx"}
    linuxs = {"lili","hanmeimei","张三","egon","lxx","jay"}

      (1)交集:取两个集合的共同部分

      

    print(pythons & linuxs)
    print(pythons.intersection(linuxs))
    
    pythons = pythons & linuxs
    pythons.intersection_update(linuxs)

      (2)并集:两个集合合并到一起

      

    print(pythons | linuxs)
    print(pythons.union(linuxs))

      (3)差集:一个集合减掉另一个集合共同的部分

      

     #只学了python的学生姓名
    print(pythons - linuxs)
    print(pythons.difference(linuxs))
    
     #只学了linux的学生姓名
    print(linuxs - pythons)

      (4)交叉补集/对称补集:两个集合相互减,然后再并到一起

      

    res = (pythons - linuxs) | (linuxs - pythons)
    res = pythons ^ linuxs
    print(res)
    
    print(pythons.symmetric_difference(linuxs))

      (5)父子集合:包含关系,当一个集合完全包含了另一个集合才能当爹QAQ

      

    s1 = {1,2,3}
    s2 = {3,4,5}
    print(s1 >= s2)
    print(s2 <= s1)
    
    s1 = {1,2,3}
    s2 = {1,2}
    print(s1 >= s2)
    print(s1.issuperset(s2))
    
    print(s2 <= s1)
    print(s2.issubset(s1))

      **需要掌握的

      1、update(增加)

      s1.update({3,4,5})

      print(s1)

      2、s1.add(增加)

      s1.add(4)

      print(s1)

      3、删除

      

    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    s1.remove(3)
    print(s1)
    
    s1.remove(333333333)
    s1.discard(333333333)
    print(s1)
    
    res=s1.pop()
    print(s1)
    print(res)
    
    s1.clear()
    print(s1)

      

      4、拷贝

      s1.copy

      5、isdisjoint

      用于判断这两个集合是否存在共同的元素,如果完全不同输出为True

      

    s1 = {1,2,3}
    s2 = {4,5,6}
    print(s1.isdisjoint(s2))
    
    
    #输出结果为True

      总结:集合可以存多个值,是无序的,是可变的

    二、文件处理

      

      (1)什么是文件

        文件是操作系统提供给用户或者应用程序操作硬盘的一种机制

      (2)为何要用文件

        读写文件------->存取硬盘

        应用程序:     open()

        操作系统:     打开文件

        计算机硬件:    硬盘空间

      (3)如何使用文件

        打开文件

        读/写

        关闭文件

    f = open(r"aa.txt",mode="rt",)
    
    #f的值-》文件句柄,文件对象
    
    res = f.read()
    print(res,type(res))
    
    f.close()  # 回收操作系统的资源
    print(f)
    f.read()
    
    
    with open(r"aa.txt",mode="rt",) as f,
            open(r"a.txt",mode="rt",) as f1:
        res = f.read()
    
    
    with open(r"aa.txt",mode="rt",) as f:
        for line in f:
            # print(line)
            res=line.strip('
    ').split(':')
            print(res)
  • 相关阅读:
    为什么 要弄清楚 mysql int(5) int(11) bigint 自建mysql主键id python random 科学计数法
    .m2 epositoryorgspringframeworkspring-beans4.1.4.RELEASEspring-beans-4.1.4.RELEASE.jar!orgspringframeworkeansfactoryxmlspring-beans-4.1.xsd
    IoC COntainer Create Javabeans 可以通过读取beans.xml 文件来创建一个应用程序上下文对象 依赖反转
    Information:java: Errors occurred while compiling module 'spring'
    dynamic programming 动态规划
    collision weaknesses
    求字符串平均长度
    Servlet + JSP 时代
    这个世界上有各种各样的框架,设计这些五花八门框架的初衷到底是什么?我们该不该学习框架,该如何学习使用这些框架?
    开窗函数
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14184284.html
Copyright © 2011-2022 走看看