Python3 列表类型

译者:anxin
日期:2017-10-27

list(列表)类型是Sequence Type(序列类型)的一个子类,序列类型两个主要数据类型是list(列表),tuple(元组)。

列表( list )是一个复合数据类型,用于将其他值组合在一起。Python3 的列表和其他语言的数组在很大程度上相似,这样便于理解列表数据类型。

Python3 定义列表

Python3的列表类型使用方括号[]定义,在方括号中各个元素使用逗号,分开。Python3 列表中包含的元素可以是不同的数据类型(如包括字符串和整数),但通常情况下我们创建的列表的元素都是同一种数据类型。

#列表的元素为不同的数据类型
>>> list1 = ['Python2', 'Python3', 123, 321]

#列表的元素为相同数据类型,字符串
>>> list2 = ['Python2', 'Python3']

#列表的元素为相同数据类型,整数
>>> list3 = [123, 321, 234, 432] 

Python3 列表的嵌套

Python3 列表可以嵌套定义,即列表的元素可以是列表

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

Python3 索引访问列表元素

序列(Sequence)有一个公共的操作那就是支持索引访问序列元素,列表是序列的子类,同样能够使用下标访问列表元素, Python3列表中的每一个元素都可以使用使用下标获取,下标值从0开始。

>>> squares = [1, 4, 9, 16, 25]
>>> squares[0]  # indexing returns the item
1

Python3中的列表元素可以使用负数索引,-1表示最右面的元素,依次往左减小-2,-3 ...

>>> squares = [1, 4, 9, 16, 25]
>>> squares[-1]  # indexing returns the item
25

Python3 修改列表元素

列表是可变数据类型,可以修改列表元素的值

1)修改列表中特定元素的值

>>> squares = [1, 4, 9, 16, 25]
>>> squares[4] = 36
>>> squares
[1, 4, 9, 16, 36]

2)修改列表中相邻几个元素的值为同一值

>>> squares = [1, 4, 9, 16, 25]
>>> squares[2: 4] = 36
>>> squares
[1, 4, 9, 36, 36]

Python3 添加列表元素

列表是可变数据类型,可以使用列表附带的方法,添加元素

1)在列表末尾添加元素

>>> squares = [1, 4, 9, 16, 25]
>>> squares.append(36)
>>> squares
[1, 4, 9, 16, 25, 36]

2)在列表中下标为i处插入元素x,语法形式 lst.insert(i, x)

>>> squares = [1, 4, 9, 16, 25]
>>> squares.insert(2, 36)
>>> squares
[1, 4, 36, 9, 16, 25]

3)在列表尾部附加一个数组,形式: lst1.extend(lst2),它等同于lis1 += lst2,但是和 lst1 + lst2创建列表不同, lst1 + lst2 创建了一个新列表

>>> squares1 = [1, 4, 9, 16, 25]
>>> squares2 = [36, 49]
>>> squares1.extend(squares2)
>>> squares1
[1, 4, 9, 16, 25, 36, 49]

Python3 删除列表元素

1)Python3 使用 del 删除列表的元素

>>> squares = [1, 4, 9, 16, 25]
>>> del squares[2]
>>> squares
[1, 4, 16, 25]

2)Python3 使用 list.pop([i]) 删除列表元素

>>> squares = [1, 4, 9, 16, 25]
>>> squares.pop(2)
9
>>> squares
[1, 4, 16, 25]

Python3 列表分片

1)Python3列表除了支持索引元素外,还支持分片(slice)操作,分片操作是获取当前列表的一个子列表,形式为:lst[start:end]start为起始下标,;end为结束下标。

>>> squares = [1, 4, 9, 16, 25]
>>> squares[2: 4]
[9, 16]

2)列表分片(slice)操作中起始下标可以省略,省略后默认为0,结束下标也可以省略,省略后默认为列表的长度(即:元素的个数)。

>>> squares = [1, 4, 9, 16, 25]
>>> squares[3:]
[16, 25]
>>> squares[:2]
[1, 4]
>>> squares[-2:]
[16, 25]

3)lst[:i] + lst[i:]等于列表 lst:,但是使用这种方式创建的列表是原列表的一个副本

>>> squares = [1, 4, 9, 16, 25]
>>> squares[:3] + squares[3:]
[1, 4, 9, 16, 25]

Python3 连接和重复列表

Python3 中使用 + 连接列表lst1 + lst2,使用 * 重复列表,这两种形式相同lst * nn * lst

>>> squares1 = [1, 4, 9, 16, 25]
>>> squares2 = [36, 49]
>>> squares1 + squares2
[1, 4, 9, 16, 25, 36, 49]

>>> squares1 * 2
[1, 4, 9, 16, 25, 1, 4, 9, 16, 25]

Python3 列表的其他操作

操作 结果
x in lst 如果列表存在元素等于x,为True,否则为False
x not in lst 如果列表不存在元素等于x,为True,否则为False
len(lst) 列表lst的长度
min(lst) 列表lst中最小的元素
max(lst) 列表lst中最大的元素

Python3 列表类附带的方法

  • list.append(x)

    在列表的末尾添加元素x

  • list.extend(iterable)

    在列表的末尾附加iterable中的所有元素

  • list.insert(i, x)

    在列表的下标为i的位置插入元素x

  • list.remove(x)

    删除列表中元素值等于x的第一个元素,如果没有等于x的元素,将抛出一个错误

  • list.pop([i])

    删除列表中下标为i位置的元素,如果没有指定i,则删除列表最后位置的元素

  • list.clear()

    删除列表中所有的元素,相当于使用del lst[:]

  • list.index(x[, start[, end]])

    返回列表中元素的值等于x的第一个元素的索引,如果指定start,end则在它们之间寻找元素。

  • list.count(x)

    返回列表中元素的值等于x的元素的个数

  • list.sort(key=None, reverse=False)

    对列表中元素进行排序

  • list.reverse()

    反转列表中元素,即第一个元素成为最后一个元素

  • list.copy()

    生成当前列表的一个副本,相当于使用lst1 = lst2[:]

本文链接:/tutorial/python3/python3-list

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!