2-列表和数组

序列概述

从0开始指出相对于序列开头的偏移量。这显得更自然,同时可回绕到序列末尾,用负索引表示序列末尾元素的位置。

禁止修改序列通常出于技术方面的考虑,与Python的内部工作原理相关,这也是有些内置函数返回元组的原因所在。

索引

如果函数调用返回一个序列,可直接对其执行索引操作。

>>> fourth = input('Year: ')[3]
Year: 2005
>>> fourth '5'

执行切片操作时,如果第一个索引指定的元素位于第二个索指定的元素后面,结果就为空序列。

如果切片结束于序列末尾,可省略第二个索引. 要复制整个序列,可将两个索引都省略。

序列

步长
步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素。

>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>> numbers[10:0:-2]

序列相加
可使用加法运算符来拼接序列。一般而言,不能拼接不同类类型的序列。

将序列与数x相乘时,将重复这个序列x次来创建一个新序列。

None、空列表和初始化
如果要创建一个可包含10个元素的列表,但没有任何有用的内容,可以使用[0]*10。然而,在有些情况下,你可能想使用表示“什么都没有”的值,如表示还没有在列表中添加任何内容。在这种情况下,可使用None。可像下面这样做:

>>> sequence = [None] * 10
>>> sequence [None, None, None, None, None, None, None, None, None, None]

成员资格

可使用运算符in来检查指定的字符串是否为另一个字符串的子串

max(lst),min(lst),len(lst)
或者 max(num1, num2, num3,)同理min()


列表

鉴于不能像修改列表那样修改字符串:

>>> list('Hello')
['H', 'e', 'l', 'l', 'o']

请注意,可将任何序列(而不仅仅是字符串)作为list的参数。

要将字符列表(如前述代码中的字符列表)转换为字符串,可使用下面的表达式:''.join(somelist)

列表基本操作

  1. 修改列表:给元素赋值

    不能给不存在的元素赋值,因此如果列表的长度为2,就不能给索引为100的元素赋值。

  2. 删除元素

    >>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']
    >>> del names[2]
    >>> names ['Alice', 'Beth', 'Dee-Dee', 'Earl']
    
  3. 给切片赋值

    • 可将切片替换为长度与其不同的序列。
    • 可在不替换原有元素的情况下插入新元素。
    • 通过切片删除元素。
    • 步长不为1的为切片赋值。

列表方法

  1. append就地修改列表。

  2. clear : 就地清空列表的内容。

    >>> lst = [1, 2, 3]
    >>> lst.clear()
    >>> lst
    []
    

    这类似于切片赋值语句lst[:] = []。

  3. copy : 复制列表. 常规复制只是将另一个名称关联 到列表

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

    要让a和b指向不同的列表,就必须将b关联到a的副本

    >>> a = [1, 2, 3]
    >>> b = a.copy()
    >>> b[1] = 4
    >>> a [1, 2, 3]
    

    这类似于使用a[:]或list(a),它们也都复制a。

  4. count 计算指定的元素在列表中出现了多少次。

  5. extend : 使用一个列表来扩展另一个列表,就地修改比a=a+b效率高。

  6. index : 查找指定值第一次出现的索引

  7. insert

  8. pop : 从列表中删除一位元素(默认是最后一位),并返回这一元素

  9. remove : 删除第一个为指定值的元素

  10. reverse

    如果要按相反的顺序迭代序列,可使用函数reversed。这个函数不返回列表,而是返回一个迭代器(迭代器将在第9章详细介绍)

  11. sort 就地排序

    为获取排序后的列表的副本,可以使用函数sorted.

pop是唯一既修改列表又返回一个非None值的列表方法。

高级排序

方法 sort 接受两个可选参数: keyreverse 。均为关键字参数.参数key指向一个用于排序的函数. 函数sorted也有这两个参数.

>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']

元组

只要将一些值用逗号分隔,就能自动创建一个元组。
特殊:只包含一个值的元祖,虽然只有一个值,也必须在它后面加上逗号

>>> 1, 2, 3
(1, 2, 3)
>>> 42
42
>>> 42,
(42,)

函数 tuple 的工作原理与 list 很像:它将一个序列作为参数,并将其转换为元组。如果参数已经是元组,就原封不动地返回它。

猜你喜欢

转载自blog.csdn.net/qq_40570025/article/details/83181519