• Python基础04 列表


    列表在Python中的应用相当广泛,前面我们的示例也大量地使用了列表。

    这里我们主要了解下列表不同于元组和字符串的地方---列表是可变的,即可修改其内容。

    一、函数list

    通过list(实际上是一个类)可以使用字符串来创建一个列表。

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

    实际上,可将任何序列(而不仅仅是字符串)作为list的参数。

    二、基本的列表操作

    可对列表执行所有的标准序列操作,如索引、切片、拼接和相乘。

    下面主要主要一些能修改列表的方式。

    1、给元素赋值

    使用索引表示法给特定位置的元素赋值:

    >>> x = [1, 1, 1]
    >>> x[1] = 2
    >>> x
    [1, 2, 1]
    >>>

    不能给不存在的元素赋值:

    >>> x[3] = 1
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list assignment index out of range

    2、删除元素

    使用del语句即可删除元素。

    >>> x = [1, 2, 3]
    >>> del x[1]
    >>> x
    [1, 3]

    不能删除不存在的元素:

    >>> x = [1, 2, 3]
    >>> del x[3]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list assignment index out of range

    3、给切片赋值

    切片是一项及其强大的功能,而能够给切片赋值让这项功能显得更加强大。

    >>> str = list('Python')
    >>> str
    ['P', 'y', 't', 'h', 'o', 'n']
    >>> str[4:] = list('er')
    >>> str
    ['P', 'y', 't', 'h', 'e', 'r']

    可将切片替换为长度与其不同的序列。

    >>> str = list('Python')
    >>> str[1:] = list('rogram')
    >>> str
    ['P', 'r', 'o', 'g', 'r', 'a', 'm']

    还可在不替换原有元素的情况下插入新元素。

    >>> numbers = [1, 5]
    >>> numbers[1:1] = [2, 3, 4]
    >>> numbers
    [1, 2, 3, 4, 5]

    numbers[1:1]相当于在索引为1的位置上进行了指定插入操作。

    也可以通过类似的操作来删除切片。

    >>> numbers
    [1, 2, 3, 4, 5]
    >>> numbers[1:4] = []
    >>> numbers
    [1, 5]

    上述代码与del numbers[1:4]等效,但后者的可读性更好一些。

    三、列表方法

    方法是与对象(列表、数、字符串等)联系紧密的函数。调用格式如下:

    object.method(arguments)

    1、append

    方法append用于将一个对象附加到列表末尾。

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

    append不会返回修改后的新列表,而是直接修改旧列表。

    2、clear

    方法clear就地清空列表的内容。

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

    该功能类似于切片赋值语句 lst[:] = []。

    3、copy

    方法copy复制列表。

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

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

    4、count

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

    >>> ['aa', 'bb', 'cc', 'dd', 'aa'].count('aa')
    2
    >>> x = [[1, 2], 1, 1, [2, 1, [1, 2]]]
    >>> x.count(1)
    2
    >>> x.count([1, 2])
    1

    5、extend

    使用一个列表来扩展另一个列表。

    >>> a = [1, 2, 3]
    >>> b = [4, 5, 6]
    >>> a.extend(b)
    >>> a
    [1, 2, 3, 4, 5, 6]
    >>> b
    [4, 5, 6]

    6、index

    方法index在列表中查找指定值第一次出现的索引。

    >>> lst = ['aa', 'bb', 'cc', 'dd', 'aa']
    >>> lst.index('aa')
    0
    >>> lst.index('bb')
    1
    >>> lst.index('ee')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 'ee' is not in list

    指定元素不存在时会发生异常。

    7、insert

    方法insert用于将一个对象插入列表。

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

    8、pop

    方法pop从列表中删除一个元素(默认为最后一个元素),并返回这一元素。

    >>> x = [1, 2, 3]
    >>> x.pop()
    3
    >>> x
    [1, 2]
    >>> x.pop(0)
    1
    >>> x
    [2]

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

    Python没有提供push,但可使用append来替代。

    9、remove

    方法remove用于删除第一个为指定值的元素。

    >>> lst = ['aa', 'bb', 'cc', 'dd', 'aa']
    >>> lst.remove('aa')
    >>> lst
    ['bb', 'cc', 'dd', 'aa']
    >>> lst.remove('ee')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.remove(x): x not in list

    指定元素不存在时会发生异常。

    10、reverse

    方法reverse按相反的顺序排列列表中元素。

    >>> x = [1, 2, 3]
    >>> x.reverse()
    >>> x
    [3, 2, 1]

    11、sort

    方法sort用于对列表就地排序,不会返回排序后的列表的副本。

    >>> x = [4, 5, 1, 6, 2, 3]
    >>> x.sort()
    >>> x
    [1, 2, 3, 4, 5, 6]

    12、高级排序

    方法sort接受两个可选参数:key和reverse。

    参数key是一个用于排序的函数,通过使用它来为每个元素创建一个键,再根据这些键对元素进行排序。

    例如,要根据长度对元素进行排序,可将参数key设置为函数len:

    >>> x = ['abcde', 'ab', 'abcd', 'abc']
    >>> x.sort(key=len)
    >>> x
    ['ab', 'abc', 'abcd', 'abcde']

    参数reverse指出是否要按相反的顺序对列表进行排序。

    >>> x = [4, 5, 1, 6, 2, 3]
    >>> x.sort(reverse=True)
    >>> x
    [6, 5, 4, 3, 2, 1]
  • 相关阅读:
    正则结合
    解决Linux下yum安装无法解析URL的问题
    Linux安装PHP和MySQL
    Windows安装PHP MongoDB扩展
    转】关于cgi、FastCGI、php-fpm、php-cgi
    Linux安装PHP MongoDB扩展
    mysql InnoDB引擎 共享表空间和独立表空间(转载)
    Mysql优化ibdata1大小
    Magento-设置产品显示的条数和默认条数
    MySql创建指定字符集的数据库
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12419007.html
Copyright © 2020-2023  润新知