• 关于python序列对象


    在很多的入门书籍中,会针对列表,元组,字符串单独进行介绍,看完之后,你会发现有部分操作是相通的,比如根据下标进行访问的操作

    >>> a = [1, 2, 3, 4, 5]

    >>> b = (1, 2, 3, 4, 5)

    >>> c = "abcdef"

    >>> a[0]

    1

    >>> b[0]

    1

    >>> c[0]

    "a"

    >>>具有相同的操作难道是巧合吗?其实不然,在python中,有一种类型,称之为sequence, 序列类型,常见的list, tuple, str, range都属于序列类型。这里有一个比较特殊的类别range, range函数用于创建数值列表,其返回值就是一个range类型, 示意如下

    >>> type(range(10))

    >>> type("abc")

    >>> type([1,2,3])

    >>> type((1,2,3))

    序列类型进一步分为以下两类

    可变的序列

    不可变的序列

    元组, 字符串以及range类型是不可修改的,属于不可变的序列类型,list可以动态修改,属于可变的序列类型。

    对于序列类型,有以下通用操作

    1.下标访问操作

    python中下标从0开始计数,用方括号将下标括起来,用法如下

    >>> a = [1, 2, 3, 4, 5]

    >>> a[0]

    1

    >>> a[-1]

    5python还支持负下标操作,从序列末尾进行计数,最后一个元素为-1, 倒数第二个为-2, 依次类推。

    2. 切片操作

    不要被高大上的名称所迷惑,切片其实就是根据多个下标,来选择子集,用法如下

    >>> a = [1, 2, 3, 4, 5]

    # 下标1到下包3,包含下标1,不包含下标3

    >>> a[1:3]

    [2, 3]

    # 1:4:2类似rang操作,第三个数字表示步长

    >>> a[1:4:2]

    [2, 4]

    # 简写,从下标1到序列末尾

    >>> a[1:]

    [2, 3, 4, 5]

    # 简写,从开头到下标-1处

    >>> a[:-1]

    [1, 2, 3, 4]切片中区间为左闭右开,即包含起始下标,不包括终止下标,

    3. len函数

    len函数返回序列对象的长度,用法如下

    >>> len("abcdef")

    6

    >>> len(range(10))

    10

    >>> len((1, 2, 3, 4, 5))

    54. max函数

    max函数返回数值序列的最大值,用法如下

    >>> max((1, 2, 3, 4, 5))

    55.min函数

    min函数返回数值序列的最小值,用法如下

    >>> min((1, 2, 3, 4, 5))

    16. sum函数

    sum函数返回数值序列的总和,用法如下

    >>> sum((1, 2, 3, 4, 5))

    157. in操作符

    用于查看序列中是否包含特定元素,用法如下

    >>> 1 in (1, 2, 3, 4, 5)

    True

    >>> 1 not in (1, 2, 3, 4, 5)

    False

    >>> "a" in "abcdef"

    True

    >>> "a" not in "abcdef"

    False8. +操作符

    将两个序列相连,用法如下

    # 多个字符串相连

    >>> "abc" + "def"

    "abcdef"

    # 将多个列表合并成

    >>> [1, 2, 3] + [4, 5]

    [1, 2, 3, 4, 5]9. *操作符

    将一个序列重复多次,用法如下

    >>> "abc" * 3

    "abcabcabc"

    >>> (1, 2, 3) * 3

    (1, 2, 3, 1, 2, 3, 1, 2, 3)10. count方法

    统计序列中某个元素出现的次数,用法如下

    >>> "abbc".count("b")

    2

    >>> (1, 2, 3, 3, 5).count(3)

    211. index方法

    返回序列中某个元素第一次出现的下标,用法如下

    >>> "abcdef".index("b")

    1

    >>> "abcdcef".index("c")

    2

    >>> (1, 2, 3, 4, 5).index(1)

    0

    >>> (1, 2, 3, 4, 5).index(2)

    1对于列表这种可变的序列类型,还拥有以下操作

    1. 修改值

    # 根据下标修改对应的值

    >>> a = [1, 2, 3, 4, 5]

    >>> a[0] = 2

    >>> a

    [2, 2, 3, 4, 5]

    # 利用切片修改对应的值

    >>> a = [1, 2, 3, 4, 5]

    >>> a[1:3] = [4, 5, 6]

    >>> a

    [1, 4, 5, 6, 4, 5]2. append 追加值

    >>> a = [1, 2 , 3, 4, 5]

    >>> a.append(6)

    >>> a

    [1, 2, 3, 4, 5, 6]3. pop 删除值

    # 默认删除最后一个元素

    >>> a = [1, 2 , 3, 4, 5]

    >>> a.pop()

    5

    >>> a

    [1, 2, 3, 4]

    # 删除指定下标的元素

    >>> a.pop(3)

    4

    >>> a

    [1, 2, 3]

    #4. remove删除值

    pop根据删除下标指定的值,remove直接删除对应的值,用法如下

    >>> a = [1, 2, 3, 4, 5]

    >>> a.remove(2)

    >>> a

    [1, 3, 4, 5]5. del 删除值

    >>> a = [1, 2, 3, 4, 5]

    >>> del a[0]

    >>> a

    [2, 3, 4, 5]

    >>> a = [1, 2, 3, 4, 5]

    >>> del a[1:2]

    >>> a

    [1, 3, 4, 5]6. insert 插入元素

    在指定下标处,插入元素,用法如下

    >>> a = [1, 2, 3, 4, 5]

    >>> a.insert(1, 2)

    >>> a

    [1, 2, 2, 3, 4, 5]7. extend

    将另一个list的元素追加到第一个list的末尾,用法如下

    >>> a = [1, 2, 3]

    >>> b = [4, 5]

    >>> a.extend(b)

    >>> a

    [1, 2, 3, 4, 5]8. reverse

    将序列元素反向,用法如下

    >>> a = [1, 2, 3, 4, 5]

    >>> a.reverse()

    >>> a

    [5, 4, 3, 2, 1]

    谨记list, tuple, str, range同为sequence类型,而sequence又分为可变和不可变两类。

    来源:https://www.weidianyuedu.com

  • 相关阅读:
    [C#]vs2022安装后C#创建winform没有.net framework4.8
    德国大学新突破:实现数千原子量子纠缠
    《深度学习工业缺陷检测》专栏介绍 & CSDN独家改进实战
    新大陆!阿里 P9 整理出:Java 架构师“成长笔记”共计 23 版块
    git修改默认分支
    Simulation Studio - TRNSYS
    Java 根据cron表达式,获取quartz job执行时间
    多机器人群体的任务状态与机器人状态同步设计思路
    触摸TP,gt9xx调试分享
    svg 简单的动画
  • 原文地址:https://blog.csdn.net/hdxx2022/article/details/127766227