WithCoderWithCoderWithCoder

Python基本数据类型之列表

   一、 列表简述

    列表是有序的元素序列,在 Python 中,列表由内置的 list 类型定义。Python 提供了一系列复合数据类型,通常被称为序列,列表(List)就是序列的一种。在 Python 中,列表是使用最频繁、用途最广泛的数据类型之一,非常灵活。

    要创建列表,只要把逗号(,)分隔的不同数据项(元素)使用方括号([])括起来即可(可以看做是其他语言中的数组对象)。

    举例:

>>> arr = ['h','e','l','l','o']
>>> type(arr)
<class 'list'>
>>>

    列表可以有任意数量(n >= 0)的元素,当 n 为 0 时,表示一个空列表。

    列表中元素的类型可以不同,支持数字、字符串,甚至可以包含列表(列表嵌套)。

    举例:

  
>>> arr = [] # 定义空列表
>>> arr
[]
>>> arr = [1,2,'a','b'] # 定义混合列表
>>> arr
[1, 2, 'a', 'b']
>>> arr = [1,'a',['b',2]] # 定义嵌套列表
>>> arr
[1, 'a', ['b', 2]]
>>>

    二、访问列表中的元素

    1-2005191P536232.png

    2.1 列表索引

        和字符串类似,可以使用索引操作符([])访问列表中的一个元素。

        举例:

>>> arr = ['h','e','l','l','o']
>>> arr[1] # 第二个元素
'e'
>>> arr[3] # 第三个元素
'l'
>>>

        同样,列表也可以反向索引,-1 表示最后一个元素,-2 表示倒数第二个元素,依此类推。

>>> arr = ['h','e','l','l','o']
>>> arr[-1] # 最后一个元素
'o'
>>> arr[-4] # 第二个元素(倒数第4个元素)
'e'
>>>

        同样地,嵌套的列表可以使用嵌套索引来访问。

>>> arr = [1,'a',['b',2]]
>>> arr[0]
1
>>> arr[2][0] # 嵌套列表的第一个元素
'b'
>>>

    2.2 对列表进行切片

        可以使用切片操作符(:)来访问列表中的一系列元素。        

>>> arr = ['h','e','l','l','o']
>>> arr[1:4] # 第1个到第4个元素
['e', 'l', 'l']
>>> arr[1:] # 第1个到最后1个元素
['e', 'l', 'l', 'o']
>>> arr[1:100] # 索引超过数组最大长度,截断至列表尾部
['e', 'l', 'l', 'o']
>>> arr[:] # 返回所有元素
['h', 'e', 'l', 'l', 'o']
>>>

    和索引类似,切片操作也可以使用反向索引:

>>> arr = ['h','e','l','l','o']
>>> arr[-5:-3] # 第一个到第三个元素
['h', 'e']
>>> arr[:-3] # 开始到第三个元素
['h', 'e']
>>> arr[-3:] # 第三个到最后元素
['l', 'l', 'o']
>>>

    三、更改及添加元素

    列表是可变的,也就是说,其中的元素可以被改变(不像字符串或元组)。

    3.1 可以使用赋值运算符(=)改变一个或一系列元素。

>>> arr = ['h','e','l','l','o']
>>> arr[1] = 'o' # 改变第二个元素
>>> arr
['h', 'o', 'l', 'l', 'o']
>>> arr[2:4]=['o','o'] # 改变第三到第五个元素
>>> arr
['h', 'o', 'o', 'o', 'o']
>>>

    3.2 可以使用 append() 方法将一个元素添加到列表中,或者使用 extend() 方法添加多个元素

>>> arr = ['h','e']
>>> arr.append('l') # 添加一个元素
>>> arr
['h', 'e', 'l']
>>> arr.extend(['l','o']) # 添加多个元素
>>> arr
['h', 'e', 'l', 'l', 'o']
>>>

    3.3 可以使用 insert() 方法将一个元素插入到所需的位置。要插入多个元素,可以将其挤压进到一个列表的空切片中。

>>> arr = ['h','l']
>>> arr.insert(1,'e')  # 在指定位置插入一个元素
>>> arr
['h', 'e', 'l']
>>> arr[3:] = ['l','o'] # 在指定位置插入多个元素
>>> arr
['h', 'e', 'l', 'l', 'o']
>>>

    四、从列表中删除元素

    4.1 可以使用关键字 del,从列表中删除一个或多个元素,甚至可以完全删除列表。

>>> arr = ['h','e','l','l','o']
>>> del arr[1] # 删除第 2 个元素
>>> arr
['h', 'l', 'l', 'o']
>>> del arr[1:3] # 删除第 2 个到第 4 个元素
>>> arr
['h', 'o']
>>> del arr # 删除列表
>>> arr
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    arr
NameError: name 'arr' is not defined
>>>

    4.2 可以使用 remove() 方法删除列表中某个元素值第一个匹配项    

>>> arr = ['h','e','l','l','o']
>>> arr.remove('l') # 删除第一个l
>>> arr
['h', 'e', 'l', 'o']
>>>

    4.3 可以用 pop() 方法删除一个给定索引处的元素。

        如果没有提供索引,pop() 方法将删除并返回最后一个元素。这有助于我们将列表实现为栈(先进后出数据结构)。

>>> arr = ['h','e','l','l','o']
>>> arr.pop(1)  # 删除第2个元素
'e'
>>> arr
['h', 'l', 'l', 'o']
>>> arr.pop()   # 不指定索引,删除最后一个元素
'o'
>>> arr
['h', 'l', 'l']
>>>

    4.4 还可以使用 clear() 方法清空一个列表。

>>> arr = ['h','e','l','l','o']
>>> arr.clear() # 清空列表
>>> arr
[]
>>>

    4.5 最后,还可以通过将一个空列表分配给一个元素切片的方式来删除列表中的项目。

>>> arr = ['h','e','l','l','o']
>>> arr[1:3] = []
>>> arr
['h', 'l', 'o']
>>> arr = []
>>> arr
[]
>>>

欢迎分享交流,转载请注明出处:WithCoder » Python基本数据类型之列表