• 第三天:字典表dict、元组tuple、文件与类型汇总


    1、字典表dict

    • 声明
      • {键: 值,...}
      • dict(键=值)
    d = {'isbn':'13123','title':'python入门'}  #字典表中的键不能使用诸如列表这种可以改变的,只能使用其他字符串或者元组等
    d['title']  # 列表list[]可以改变其中的元素,但是不能赋新元素给列表
    
    'python入门'
    
    • 操作
      • 获取:d['键']、 d.get('键', 默认值)
    d['author'] #直接查询表中元素,若是不存在的话就会有报错信息
    d.get('author') # 使用get方法,如果不存在的话就不会出现报错信息
    d.get('author', 0.0) #规定不存在的报错内容
    
    KeyError: 'author'
    0.0
    
    - 合并:d.update(d2)
    
    emp = dict(name = 'Mike', age = 20, job = 'dev') #创建字典表的一种方式
    dep = {'department':'技术部'} #使用update来添加字典表
    emp.update(dep)
    emp
    
    {'name': 'Mike', 'age': 20, 'job': 'dev', 'department': '技术部'}
    
    • 属性
      • keys()
      • values()
      • items()
    emp.keys() #查看键
    emp.values() #查看值
    emp.items()
    
    dict_keys(['name', 'job', 'department'])
    dict_values(['Mike', 'dev', '技术部'])
    dict_items([('name', 'Mike'), ('job', 'dev'), ('department', '技术部')])
    
    • 排序键
      • 将keys()放入列表
      • 使用全局函数sorted()
    ks = d.keys()
    ks.sort() #不能直接排序,会报错
    

    报错信息如下:

    AttributeError: 'dict_keys' object has no attribute 'sort'
    

    第一种:

    ks = list(d.keys())
    ks.sort()
    ks
    for k in ks:
        print(d.get(k))
    
    ['a', 'b', 'c', 'd']
    1
    2
    3
    4
    

    第二种:

    ks = d.keys()
    for k in sorted(ks):   
        print(k, d.get(k))
    
    a 1
    b 2
    c 3
    d 4
    

    2、元组tuple

    • 特征
      • 任意对象有序集合
      • 通过下标访问
      • 属“不可变”类型
      • 长度固定,任意类型,任意嵌套
    • 声明
      • (元素,)
    (1,2) + (3,4)
    1,2 #赋值
    
    (1, 2, 3, 4)
    (1, 2)
    
    x = (40) #只有单个元素,赋值后是整数,非元组
    type(x)
    x = (40,) 使用这两种方式
    type(x)
    x = 40,
    type(x)
    
    int
    tuple
    tuple
    
    - **index(val):查找索引**
    - **count(val):统计数量**
    - **namedtuple**
    
    from collections import namedtuple
    Employee = namedtuple('Employee', ['name', 'age','department','salary'])
    jerry = Employee('Jerry',age = 30, department = '财务部', salary = 9000.0)
    jerry.name
    jerry.salary
    
    'Jerry'
    9000.0
    

    文件与类型汇总

    • 基本语法
      • file = open('文件名',mode)
      • mode:'r', 'b', 'w', 'a'
    myfile = open('hello.txt', 'w') #创建文件
    myfile.write('优品
    ') #创建文本内容,并返回字符数量
    myfile.close() #关闭文件
    
    3
    
    • 操作
      1.read()
    f = open('hello.txt', 'r')#默认是r模式,可以不写
    f.read()
    f.read()
    
    第一次结果:'优品
    Hello world!
    '
    第二次输出:'' #连续操作两次,内容不一样
    

    2.readline()

    f = open('hello.txt')#默认是r模式,可以不写
    f.readline() #一次读取一行
    f.readline()
    
    '优品
    '
    'Hello world!
    '
    

    3.readlines()

    l = open('hello.txt').readlines()
    for line in l:
        print(line)
    
    优品
    Hello world!
    

    4.close()

    f = open('course.txt','w', encoding = 'utf8')
    f.write('优品
    Hello world!
    ')
    f.write('www.codeclassroom.com')
    f.close()
    
    16
    21
    
    • 其他操作
    f = open('datafile.txt','w')
    x,y,z = 1,2,3
    f.write('{},{},{}'.format(x,y,z))
    l =[1,2,3]
    f.write(str(l))
    f.close()
    
    5
    9
    
    • pickle存取Python对象
      • dump(对象,目标文件)
    d = {'a':1,'b':2}
    f = open('datafile.pkl', 'wb')
    import pickle
    pickle.dump(d,f) #把字典表d放到文件f里面
    f.close()
    open('datafile.pkl','rb').read()
    
    b'x80x03}qx00(Xx01x00x00x00aqx01Kx01Xx01x00x00x00bqx02Kx02u.'
    
    - load(文件)
    
    f = open('datafile.pkl', 'rb')
    data = pickle.load(f)
    data
    
    {'a': 1, 'b': 2}
    
    • with方法加载文件
    with open('course.txt') as f: #结束后会自动释放资源
        for line in f.readlines():
            print(line)
    
    浼樺搧
    Hello world!
    www.codeclassroom.com
    

    4、汇总

    1.集合

    • 序列

      • 可变:list
      • 不可变:字符串str、元组tuple、字节数组
    • 映射

      • 字典表dict
    • 集合

      • set
        2.数字

      • 整型:int、boolean

      • 浮点型:float、Decimal、...
        3.可调用

    • 函数 function

    • 生成器 Generator

    • 类 class

    • 方法
      3.其他

    • 文件

    • 视图

    • None
      3.内部

    • type

  • 相关阅读:
    git切换仓库 小记
    修改prometheus默认端口,修改grafana默认端口
    Redisson报错
    Windows IDEA Community 报错
    Debouncer防抖代码
    IDEA通用配置
    Jackson通用工具类
    SpringBoot接入两套kafka集群
    博客园什么时候有的高低贵贱制度???
    致已经逝去的2020和已经到来的2021
  • 原文地址:https://www.cnblogs.com/linyk/p/11442984.html
Copyright © 2020-2023  润新知