• &【04】Python 数据结构之序列


    数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构。

    Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。

    在Python中,最基本的数据结构是序列(sequence)。

    序列概览

    • 序列中的每个元素被分配一个序号–即元素的位置,也称为索引。第一个元素索引是0,第二个则是1,一次类推。
    • Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。其中列表和元组是最常见的类型。
    • 列表和元组的主要区别是列表可以修改,而元组不能,如果要根据要求来添加元素,这时候列表适用性会更好,但是当序列不能修改的时候,使用元组则更合适,使用元组与 Python 的运作方式相关。
    • 在 Python 中几乎所有的情况下列表都可以替代元组,但是特殊情况不能(当使用元组作为字典的不可修改的键时,此时键不能修改,所以不能使用列表)
    • 通用序列操作:索引、分片、序列相加、乘法、成员资格、长度、最小值和最大值

    通用序列操作

    Python 中所有序列类型都可以进行一些特定的操作,这些操作包括:索引、分片、相加、相乘以及检查某个元素是否属于序列的成员–>成员资格检测 除此之外,Python 还有计算序列长度,找出最大和最小元素的内建函数。

    索引

    序列中所有的元素都是有编号的–从0开始递增。可以通过编号分别对序列的元素进行访问。Python的序列也可以从右边开始索引,最右边的一个元素的索引为-1,想左开始递减。

    greeting = 'Hello'
    print(greeting[2])
    print(greeting[-1])
    print('stringtesting'[3])

    分片

    分片后面会有详细的总结

    索引用来对单个元素进行访问,用分片可以对一定范围内的元素进行访问,分片通过冒号相隔的两个索引来实现。分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,第二个则不包含在分片内。

    序列相加

    a = [1,2,3]+[4,5,6]
    print(a) # 输出 [1, 2, 3, 4, 5, 6]
    
    b = 'Hello '+'World!'
    print(b) # 输出 Hello World!
    
    c = [1,2,3]+'Hello' # 报错
    print(c) 
    Traceback (most recent call last):
      File "D:/PycharmProjects/pythonProject/main.py", line 6, in <module>
        c = [1,2,3]+'Hello'
    TypeError: can only concatenate list (not "str") to list

    最后一个例子,试图列表和字符串进行相加,但是出错了,虽然他们都是序列,但是是不同数据类型,不能相加

    乘法

    用数字x剩以一个序列会生成新的序列,而在新的序列中,原来的序列将会被重复x次。

    a = 'python '*4  
    print(a) #输出python python python python  
    b = [None]*4 #None为Python的内建值,这里创建长度为4的元素空间,但是什么元素也不包含  
    print(b) #输出[None, None, None, None]

    成员资格

    可以使用in运算符来检查一个值是否在序列中,如果在其中,就返回Ture,如果不在,就返回False。

    permission='rw'
    print('r' in permission) #输出True
    print('x' in permission) #输出False

    长度、最小值和最大值

    内建函数len、min和max分别返回序列所包含的元素的数量,序列中的最小元素和序列中的最大元素。

    number = [2, 3, 4, 5, 6, 7, 8, 9, 10]
    print(len(number)) #输出9
    print(min(number)) #输出2
    print(max(number)) #输出10
    print(min(4, 3, 5)) #输出3
    # 函数的参数不用一定是序列,也可以是多个数字
    
  • 相关阅读:
    javascript事件列表解说
    如何在ASP.NET页面中嵌入WINFORM控件
    ASP.NET 刷新后如何保持网页的位置
    JS的event 对象
    imp导入数据到ORACLE遭遇ORA12899错误
    求鞍点
    全排列递归实现
    三点顺序
    NYoj 14会场安排问题
    strchr和strstr函数
  • 原文地址:https://www.cnblogs.com/doagain/p/15521587.html
Copyright © 2020-2023  润新知