python中列表(list)用来表示有序可变元素的集合,元素可以是任意数据类型。列表是一种复合数据类型,它是容器结构,可以包含其他类型的数据,在开发过程中会大量应用。

列表的定义

列表由一对中括号进行定义,元素与元素之间使用逗号隔开。

空列表的定义

>>> a = []
>>> print(a, type(a))
[] <class 'list'>

字符串列表

>>> b = ['hello','world!']
>>> print(b, type(b))
['hello', 'world!'] <class 'list'>

数字列表

>>> s = [80,79,85.5,98]
>>> print(s, type(s))
[80,79,85.5,98] <class 'list'>

当然也可以是混合的数据

>>> c = ['a', 2, 2.5]
>>> print(c, type(c))
['a', 2, 2.5] <class 'list'>

再次强调,列表的元素可以是任何数据类型,列表作为列表的元素叫做列表的嵌套,通过列表嵌套可以表示多维数据。

>>> score = [
    ['语文','数学','英语'],
    [80,79,89],
    [90,89,67],
    [87,56,78]
]

列表的拼接

像字符串一样,列表之间也可以进行加法运算实现列表的拼接,也可以和整数进行乘法运算实现重复拼接。

>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>> [1,2,3] * 3
[1,2,3,1,2,3,1,2,3]

列表的索引和切片

序列的索引,切片操作完全一致,参见字符串。

>>> l = [1,2,3,4]
>>> l[-1]
4
>>> l[:2]
[1,2]

注意嵌套列表的元素获取

>>> score = [
    ['语文','数学','英语'],
    [80,79,89],
    [90,89,67],
    [87,56,78]
]
>>> score[1][2]
89

列表的常用操作

python中列表操作非常灵活,是非常重要和经常使用的数据类型。

增加元素

给列表增加元素需要使用列表的方法

  • .append(el)

在列表的末尾添加一个元素

>>> ls = [1,2,3]
>>> ls.append(4)
>>> print(ls)
[1,2,3,4]
  • .insert(index,el)

在列表指定索引处插入一个元素

>>> ls = [1,2,3]
>>> ls.insert(0,0)
>>> print(ls)
[0,1,2,3]
>>> ls.insert(2,'a')
>>> print(ls)
[0,1,'a',3]
  • .extend(iterable)

扩展列表,元素为传入可迭代对象中的元素

>>> ls = [1,2,3]
>>> ls.extend([4,5,6])
>>> print(ls)
[1,2,3,4,5,6]

删除元素

  • .pop(index=-1)

删除指定索引的元素,并返回该元素,没有指定索引默认删除最后一个元素

>>> ls = [1,2,3,4]
>>> ls.pop()
4
>>> print(ls)
[1,2,3]
>>> ls.pop(0)
1
>>> print(ls)
[2,3]
  • .remove(value)

从列表中删除第一个指定的值value,如果不存在value则报错

>>> ls = [1,2,3,1]
>>> ls.remove(1)
>>> print(ls)
[2,3,1]
  • .clear()

清空列表,原列表变成空列表

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

修改元素

列表中的元素可以进行修改,只需要使用索引赋值即可。

>>> ls = [1,2,3]
>>> ls[1] = 'a'
>>> print(ls)
[1, 'a', 3]

列表的其他方法

  • .copy()

返回一个列表的浅拷贝。在讲可变与不可变类型的时候再详细讨论。

  • .count(value)

统计列表中value出现的次数

>>> ls = [1,2,3,1]
>>> ls.count(1)
2
  • index(self, value, start=0, stop=9223372036854775807)

返回列表中指定值value的第一个索引,不存在则报错

>>> ls = [1,2,3,1]
>>> ls.index(1)
0
>>> ls.index(1,1)
3
  • .reverse()

翻转列表元素顺序

>>> ls = [1,2,3]
>>> ls.reverse()
>>> print(ls)
[3,2,1]
  • .sort(key=None, reverse=False)

对列表进行排序,默认按照从小到大排序,当参数reverse=True时,从大到小进行排序。注意列表中的元素类型需要相同,否则抛出异常。

>>> ls = [2,1,3]
>>> ls.sort()
>>> print(ls)
[1,2,3]
>>> ls.sort(reverse=True)  # 从大到小
>>> print(ls)
[3,2,1]