美文网首页
python列表(List)

python列表(List)

作者: 学习编程王同学 | 来源:发表于2018-02-14 20:10 被阅读33次

    列表(list)是python中常用的一种类型。

    列表是由若干值组成的序列,这些值可以是任何类型。

    列表是可变的。

    创建列表

    创建一个列表,只需要将逗号(,)隔开的值用方括号[]括起来就行。

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

    这就创建了一个列表,它的值分别是1,2,3,4,5.

    列表内的值可以是不同的类型:

    >>> [1, 2.5, 'mwang']
    [1, 2.5, 'mwang']
    

    当然,值也可以是列表类型,这也叫做列表的嵌套:

    >>> [1, ['a', 'b'], 2, ['c', 'd']]
    [1, ['a', 'b'], 2, ['c', 'd']]
    

    这个列表有四个值,分别是:

    1. 整数1
    2. 列表['a', 'b']。这个列表包含两个值,第1个是字符a,第2个是字符b
    3. 整数2
    4. 列表['c', 'd']。这个列表包含两个值,第1个是字符c,第2个是字符d

    也可以创建一个空列表:

    >>> []
    []
    

    可以将列表赋值给一个变量:

    >>> name = ['zhao', 'qian', 'sun', 'li']
    >>> name
    ['zhao', 'qian', 'sun', 'li']
    

    列表是可变的,这意味着可以对列表进行重新赋值:

    >>> name = ['zhao', 'qian', 'sun', 'li']
    >>> name
    ['zhao', 'qian', 'sun', 'li']
    >>> name = [1, 2, 3, 4]
    >>> name
    [1, 2, 3, 4]
    

    使用运算符+连接列表:

    >>> name1 = ['zhao', 'qian', 'sun', 'li']
    >>> name2 = ['zhou', 'wu', 'zheng', 'wang']
    >>> name = name1 + name2
    >>> name
    ['zhao', 'qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang']
    

    上面的例子中,+将列表name1与列表name2按照写明的顺序连接,生成一个新的列表。把这个新列表赋值给变量name

    如果列表中有重复的值,可以使用*创建列表:

    >>> age = ['wang', 24] * 4
    >>> age
    ['wang', 24, 'wang', 24, 'wang', 24, 'wang', 24]
    

    例子中,列表['wang', 24]被重复4次,生成一个新列表,并将新列表赋值给变量age

    访问列表中的值

    通过下标(index)作为索引,可以访问列表中的值。

    列表中的第1个值的下标是0,第2个值的下标是1,第3个值的下标是2……依此类推。

    还有一种负数的索引方法,列表中最后1个值的下标是-1,倒数第2个值的下标是-2,倒数第3个值的下标是-3……依此类推。

    例如下面的这个列表:

    name = ['zhao', 'qian', 'sun', 'li']
    

    name列表的索引如下:

    索引(下标) 负数的索引(下标)
    'zhao' 0 -4
    'qian' 1 -3
    'sun' 2 -2
    'li' 3 -1

    可以看到,对于有4(n)个值的列表,它的正数下标只能到3(n-1)。可以使用两种索引方式中的任意一种(或者混用)访问列表中的值:

    >>> name = ['zhao', 'qian', 'sun', 'li']
    >>> name[1]     # 第2个值
    'qian'
    >>> name[-3]    # 倒数第3个值
    'qian'
    >>> name[0]     # 第1个值
    'zhao'
    >>> name[-1]    # 最后1个值
    'li'
    >>> name[4]     # 超出范围的下标
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
    

    访问嵌套列表中的值:

    >>> infomation = ['name', ['male', 'female'], 'age']
    >>> infomation[1]
    ['male', 'female']
    >>> infomation[1][0]
    'male'
    

    截取列表

    可以截取列表的一部分。

    首先创建一个列表:

    >>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    

    截取列表的一部分,需要使用下标和冒号:,截取出的部分会成为一个新列表。

    下面是一些例子:

    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    >>> letters[1:5]        # 第2到第5个值
    ['b', 'c', 'd', 'e']
    >>> letters[1:-2]       # 第2到倒数第3个值
    ['b', 'c', 'd', 'e']
    >>> letters[:5]         # 第1个值到第5个值
    ['a', 'b', 'c', 'd', 'e']
    >>> letters[:-3]        # 第1到倒数第4个值
    ['a', 'b', 'c', 'd']
    >>> letters[4:]         # 从第5个值到最后一个值
    ['e', 'f', 'g']
    >>> letters[:]          # 所有值
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    

    对于list[n1:n2],截取列表中从下标n1到下标n2-1(即下标包含n1但不包含n2)的部分,并将此部分作为一个新的列表。

    更新列表

    列表中的值是可变的。

    使用list.append(obj)在列表末尾增加一个值:

    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    >>> letters.append('h')
    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
    

    例子中列表letters末尾增加了一个值'h'

    使用list.pop(index)删除列表中的一个值,默认是最后一个值,函数返回该值:

    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
    >>> letters.pop()
    'h'
    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    

    例子中删除了列表letters中的最后一个元素'h',并返回该值。

    下面是三个常用的函数:

    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    >>> len (letters)       # 返回列表中值的个数
    7
    >>> max (letters)       # 返回列表中'最大'的值
    'g'
    >>> min (letters)       # 返回列表中'最小'的值
    'a'
    

    函数list.index(obj)返回objlist中第一个匹配项的下标,函数list.index(index,obj)list中下标为index的位置插入值obj,下面是一个例子。

    >>> letters
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    >>> if 'c' in letters:                  # 判断'c'是否在letters内
    ...     c_index = letters.index ('c')   # 取得第一个'c'的下标,赋值给变量c_index
    ...     letters.insert (c_index, 'z')   # 在下标c_index的位置插入'z'
    ... 
    >>> letters
    ['a', 'b', 'z', 'c', 'd', 'e', 'f', 'g']
    

    由于'c'letters内,所以布尔表达式为真;取得第一个'c'的下标为2,保存到变量c_index中;在下标为c_index(2)的位置插入'z'

    使用list.remove(obj)删除list中第一个obj的匹配项:

    >>> name
    ['li', 'qian', 'sun', 'zhao', 'sun']
    >>> name.remove('sun')
    >>> name
    ['li', 'qian', 'zhao', 'sun']
    

    例子中,列表name中有两个'sun',之后使用name.remove('sun')删除了其中的第一个'sun'

    >>> name
    ['li', 'qian', 'zhao', 'sun', 'qian']
    >>> name.count ('qian')
    2
    

    list.count(obj)返回在listobj出现的次数。上面的例子中'qian'name中出现了2次。

    list.reverse()对列表中的值进行反向:

    >>> name
    ['li', 'qian', 'zhao', 'sun', 'qian']
    >>> name.reverse()
    >>> name
    ['qian', 'sun', 'zhao', 'qian', 'li']
    

    list.sort()对列表中的值进行排序:

    >>> name
    ['qian', 'sun', 'zhao', 'qian', 'li']
    >>> name.sort()
    >>> name
    ['li', 'qian', 'qian', 'sun', 'zhao']
    

    相关文章

      网友评论

          本文标题:python列表(List)

          本文链接:https://www.haomeiwen.com/subject/kyzetftx.html