zoukankan      html  css  js  c++  java
  • 038 序列类型操作-元组类型和列表类型

    一、概要

    • 序列类型定义
    • 序列处理函数及方法
    • 元组类型及操作
    • 列表类型及操作
    • 序列类型应用场景

    二、序列类型定义

    序列是具有先后关系的一组元素

    • 序列是一维元素向量,元素类型可以不同
    • 类似数学元素序列: s0, s1, … , sn-1
    • 元素间由序号引导,通过下标访问序列的特定元素

    序列是一个基类类型

    038-序列类型操作-元组类型和列表类型-01.jpg?x-oss-process=style/watermark

    2.1 序号的定义

    038-序列类型操作-元组类型和列表类型-02.jpg?x-oss-process=style/watermark

    三、序列处理函数及方法

    操作符及应用描述
    x in s 如果x是序列s的元素,返回True,否则返回False
    x not in s 如果x是序列s的元素,返回False,否则返回True
    s + t 连接两个序列s和t
    sn 或 ns 将序列s复制n次
    s[i] 索引,返回s中的第i个元素,i是序列的序号
    s[i: j] 或 s[i: j: k] 切片,返回序列s中第i到j以k为步长的元素子序列

    3.1 序列类型操作实例

    ls = ['python', 123]
    ls[::-1]
    
    [123, 'python']
    
    s = 'python123'
    s[::-1]
    
    '321nohtyp'
    

    3.2 序列类型通用函数和方法

    函数和方法描述
    len(s) 返回序列s的长度
    min(s) 返回序列s的最小元素,s中元素需要可比较
    max(s) 返回序列s的最大元素,s中元素需要可比较
    s.index(x) 或s.index(x, i, j) 返回序列s从i开始到j位置中第一次出现元素x的位置
    s.count(x) 返回序列s中出现x的总次数
    ls = ['python', 123]
    len(ls)
    
    2
    
    s = 'python123'
    max(s)
    
    'y'
    

    四、元组类型及操作

    4.1 元组类型定义

    元组是序列类型的一种扩展

    • 元组是一种序列类型,一旦创建就不能被修改
    • 使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔
    • 可以使用或不使用小括号
    creature = "cat", "dog", "tiger", "human"
    creature
    
    ('cat', 'dog', 'tiger', 'human')
    
    color = (0x001100, "blue", creature)
    color
    
    (4352, 'blue', ('cat', 'dog', 'tiger', 'human'))
    

    4.2 元组类型操作

    元组继承序列类型的全部通用操作

    • 元组继承了序列类型的全部通用操作
    • 元组因为创建后不能修改,因此没有特殊操作
    • 使用或不使用小括号
    creature = "cat", "dog", "tiger", "human"
    creature[::-1]
    
    ('human', 'tiger', 'dog', 'cat')
    
    color = (0x001100, "blue", creature)
    color[-1][2]
    
    'tiger'
    

    五、列表类型及操作

    5.1 列表类型定义

    列表是序列类型的一种扩展,十分常用

    • 列表是一种序列类型,创建后可以随意被修改
    • 使用方括号 [] 或list() 创建,元素间用逗号 , 分隔
    • 列表中各元素类型可以不同,无长度限制
    ls = ["cat", "dog", "tiger", 1024]
    ls
    
    函数或方法描述
    ls[i] = x 替换列表ls第i元素为x
    ls[i: j: k] = lt 用列表lt替换ls切片后所对应元素子列表
    del ls[i] 删除列表ls中第i元素
    del ls[i: j: k] 删除列表ls中第i到第j以k为步长的元素
    ls += lt 更新列表ls,将列表lt元素增加到列表ls中
    ls *= n 更新列表ls,其元素重复n次
    ls = ["cat", "dog", "tiger", 1024]
    ls[1:2] = [1, 2, 3, 4]
    ls
    
    ['cat', 1, 2, 3, 4, 'tiger', 1024]
    
    del ls[::3]
    ls
    
    [1, 2, 4, 'tiger']
    
    ls * 2
    
    [1, 2, 4, 'tiger', 1, 2, 4, 'tiger']
    

    5.2 列表类型操作函数和方法

    函数或方法描述
    ls.append(x) 在列表ls最后增加一个元素x
    ls.clear() 删除列表ls中所有元素
    ls.copy() 生成一个新列表,赋值ls中所有元素
    ls.insert(i,x) 在列表ls的第i位置增加元素x
    ls.pop(i) 将列表ls中第i位置元素取出并删除该元素
    ls.remove(x) 将列表ls中出现的第一个元素x删除
    ls.reverse() 将列表ls中的元素反转
    ls = ["cat", "dog", "tiger", 1024]
    ls.append(1234)
    ls
    
    ['cat', 'dog', 'tiger', 1024, 1234]
    
    ls.insert(3, "human")
    ls
    
    ['cat', 'dog', 'tiger', 'human', 1024, 1234]
    
    ls.reverse()
    ls
    
    [1234, 1024, 'human', 'tiger', 'dog', 'cat']
    

    5.3 列表功能默写

    5.3.1 题目

    • 定义空列表lt
    • 向lt新增5个元素 --> lt += [1,2,3,4,5]
    • 修改lt中第2个元素
    • 向lt中第2个位置增加一个元素
    • 从lt中第1个位置删除一个元素
    • 删除lt中第1-3位置元素
    • 判断lt中是否包含数字0
    • 向lt新增数字0
    • 返回数字0所在lt中的索引
    • lt的长度
    • lt中最大元素
    • 清空lt

    5.3.2 答案

    • lt = []
    • lt += [1,2,3,4,5]
    • lt[2] = 6
    • lt.insert(2, 7)
    • del lt[1]
    • del lt[1:4]
    • 0 in lt
    • lt.append(0)
    • lt.index(0)
    • len(lt)
    • max(lt)
    • lt.clear()

    六、序列类型应用场景

    数据表示:元组 和 列表

    • 元组用于元素不改变的应用场景,更多用于固定搭配场景
    • 列表更加灵活,它是最常用的序列类型
    • 最主要作用:表示一组有序数据,进而操作它们

    6.1 元素遍历

    for item in ls/tp :
        <语句块>
    

    6.2 数据保护

    • 如果不希望数据被程序所改变,转换成元组类型
    ls = ["cat", "dog", "tiger", 1024]
    lt = tuple(ls)
    lt
    
    ('cat', 'dog', 'tiger', 1024)
    

    七、单元小结

    • 序列是基类类型,扩展类型包括:字符串、元组和列表
    • 元组用()和tuple()创建,列表用[]和set()创建
    • 元组操作与序列操作基本相同
    • 列表操作在序列操作基础上,增加了更多的灵活性
  • 相关阅读:
    node03- FS内置模块
    node03- CommonJS
    删除当前目录下的所有文件夹和文件
    解决 idea 项目中Error:java: 无效的标记
    Raid0,Raid1,Raid5,Raid10 总结
    Tcpdump命令
    ClassNotFoundException 和 NoClassDefFoundError 区别
    Dart-List里面常用的属性和方法
    CSS实现等分布局的4种方式
    iOS项目添加CocoaPods
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14129865.html
Copyright © 2011-2022 走看看