zoukankan      html  css  js  c++  java
  • 集合,数据类型总结,文件处理之基础

    今日内容:

    一、集合类型

    1、作用:去重,关系运算

    (1)不能保证顺序

    ames = ['egon','lxx','lili',"egon","egon"]
    print(list(set(names)))      #集合去重,无序
    
    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)       #用for去重,结果有顺序
    
    2、定义集合:
    定义方式: 在{}内用逗号分隔开多个元素,集合内元素的特点有三个            
    (1)集合内元素必须是不可变类型           
    (2)集合内元素不能重复           
    (3)集合内元素无序
    

    数据类型转换

     res = set("hello")
     print(res)
    
    3、常用操作+内置的方法

    优先掌握的。案例:

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

    (1)交集:取两个集合的共同部分->既报名pythons又报名linuxs的学生

    pythons = pythons & linuxs
    

    (2)并集:两个集合并到一起->所有学生的姓名

    print(pythons | linuxs)
    

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

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

    (4) 交叉补集/对称差集:两个集合互相减,然后再并到一起-,取没有同时学两门课程的学生

    res = (pythons - linuxs) | (linuxs - pythons)
    或res = pythons ^ linuxs
    print(res)
    

    (5) 父子集合:当一个集合完全包含了另外一个集合,该集合才能称爹

     s1 = {1,2,3}
     s2 = {1,2}
     print(s1 >= s2)
     print(s1.issuperset(s2))  
    

    需要掌握的:

    update 更新集合
    s1 = {1,2,3}
    s1.update({3,4,5})
    print(s1)
    
    add 只添加一个新值
    s1 = {1,2,3}
    s1.add(4)
    print(s1)
    
    remove 指定删除,如删除不在的元素,会报错
    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    s1.remove(33)
    print(s1)
    
    discard  指定删除,如删除不在的元素,不会报错
    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    s1.discard(333)
    print(s1)
    
    pop 集合没有索引,随机删除任意元素
    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    res=s1.pop()
    print(s1)
    
    clear 清空
    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    s1.clear()
    print(s1)
    
    copy 复制
    s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
    s1.copy()
    print(s1)
    
    isdisjoint 判读是否完全不相关的集合
    s1 = {1,2,3}
    s2 = {3,4,5,6}
    print(s1.isdisjoint(s2))
    

    该类型总结:

    ^ 存多个值

    ^ 无序

    ^ 可变

    二、数据类型总结

    按存储空间的占用分(从低到高)

    数字
    字符串
    集合:无序,即无序存索引相关信息
    元组:有序,需要存索引相关信息,不可变
    列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
    字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改
    

    按存值个数区分

    原子类型 数字,字符串
    容器类型 列表,元组,字典

    按可变不可变区分

    可变 列表,字典
    不可变 数字,字符串,元组

    按访问顺序区分

    直接访问 数字
    顺序访问(序列类型) 字符串,列表,元组
    key值访问(映射类型) 字典

    三、文件处理

    1、介绍

    (1)什么是文件

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

    (2)为何要用文件

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

    应用程序:      open()
    操作系统:      打开文件
    计算机硬件:    硬盘空间
    

    (3)操作文件的流程:

    1. 打开文件,得到文件句柄并赋值给一个变量
    f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
    2. 通过句柄'f'对文件进行操作
    data=f.read()
    3. 关闭文件
    f.close()
    

    (4)f=open('a .t x t','r')的过程分析

    1、由应用程序向操作系统发起系统调用open(...)
    
    2、操作系统打开该文件,并返回一个文件句柄给应用程序
    
    3、应用程序将文件句柄赋值给变量f
    
  • 相关阅读:
    Strapi and MongoDB
    Windows 下入手 MongoDB
    npm 创建一个 github action
    Vue3: does not provide an export named 'createRouter'
    How To Use Rocketbots As A Dialogflow CRM
    Telegram Groups vs Telegram Channels
    WhatsApp Group vs WhatsApp Broadcast for Business
    Instant Messaging for Business: Your 10 Best Options
    How to Create and Use Facebook Messenger Codes (June 2019)
    Ultimate Guide to Line For Business (May 2019)
  • 原文地址:https://www.cnblogs.com/caodan01/p/14184666.html
Copyright © 2011-2022 走看看