【Python 基础】列表全面讲解:元素获取、嵌套使用及常用函数


前言

Python 中组合数据类型是编程核心基础,包含列表(list)、元组(tuple)、字典(dict)与集合(set)。每一种数据类型都有特定的用处和特征,合理掌握各类数据结构的特点与用法,能高效存储、处理数据,为后续编程学习打下坚实基础。本文是面向新手将使用列表类型的使用方式来介绍。


一、获取列表元素

列表是 Python 最常用的可变组合数据类型,使用 []定义,元素可存放数字、字符串等不同类型数据。支持增、删、改、查操作,有序且允许元素重复,灵活便捷,是日常数据存储与处理的常用结构。

1.索引获取列表元素

列表中间的元素都是有顺序的,所以我们可以通过索引和切片的方式获取到列表中的元素,我们首先说索引方法,他的特点是有两个方向可以选择,列表中的字符串和子列表都只当作一个元素来看。
在这里插入图片描述
演示代码:

a = '我爱学习'
ls = [36,[36],[3,6],a]
print(ls[0],ls[1],ls[2],ls[3])

输出结果:
36 [36] [3, 6] 我爱学习

36 [36] [3, 6] 我爱学习

我们使用了三种元素分别是数值,子列表,还有字符串,虽然子列表中的数据不止一个但我们还是完整的将他输出出来了,这是因为列表的特征,就是将列表中的字符串和子列表都只当作一个元素来看。
如果我们想索引子列表中的元素,只需要稍微的改动一下代码即可,代码如下:

a = '我爱学习'
ls = [36,[36],[3,6],a]
print(ls[1][0],ls[2][1],ls[3][2])

结果为:

36 6

这两个索引方式都是用到了列表的索引原理,即列表在内存中是一块逻辑上连续的地址空间,每个元素会按顺序依次存放。列表的索引,就相当于给每个元素按顺序编了号:从0开始,依次是0,1,2,3…,代表元素在列表中的 “偏移位置”。
同时有两个方向,分别是从队头向队尾,和从队尾向队头。
不同的是,从队头向队尾正向索引从左到右,以0为起点;从队尾向队头反向索引从右到左,以-1为起点。
我们需要注意的是索引下标必须是整数:列表索引只能是整数(int)类型,不能用浮点数(floa)、字符串(str)等其他类型,否则会直接报错。
越界会报错:当索引值超出列表的有效范围(比如列表长度为 3,用my_list[3]或my_list[-4]),会抛出IndexError: list index out of range异常。
双向索引对应关系:对于长度为n的列表,正向索引i和反向索引-(n-i)指向同一个元素。

2.切片获取列表元素

获取列表元素的第二种方法为切片,特征是我们通过切片获得的结果还是一个列表,新列表中包含的是我们切片获取的列表元素。
演示代码:

a = '我爱学习'
ls = [36,[36],[3,6],a]
print(ls[0:2],ls[-3:-2])

结果为:

[36, [36]] [[36]]

可以看到我们得到的还是列表,ls[0:2]表示获取的是索引号为0~2且不包含索引号为2的元素,ls[-3:-2] 表示获取的是索引号为 -3~ -2且不包含索引号为-1的元素。

二、嵌套列表的索引方法

嵌套列表就是列表中再嵌套列表,形成多层数据结构,如同二维表格。
访问嵌套元素需要多层索引逐级取值:先通过外层索引找到内层子列表,再使用内层索引获取具体元素。
正向、反向索引规则同样适用嵌套列表,既可以从头部正向查找,也能从尾部反向取值,操作灵活。
演示代码:

a = '我爱学习'
ls = [36,[3,6,'holle world!'],a]
print(ls[1][2][6])

结果为:

w

我们想要看懂嵌套列表可以分步进行
第一步:拆解列表 ls 结构

ls = [
        36,                         # 索引 0
       [3,6,'holle world!'],  # 索引 1(这是一个嵌套列表)
      '我爱学习'               # 索引 2
 ]

第二步:逐层解析索引

  1. ls[1]
    取列表第 1 号元素 → 得到子列表:
    [3, 6, ‘holle world!’]
  2. ls[1][2]
    在子列表里取第 2 号元素 → 得到字符串:
    ‘holle world!’
  3. ls[1][2][6]
    在字符串里取第 6 号字符
    字符串索引从 0 开始数:
    h o l l e w o r l d !
    0 1 2 3 4 5 6 7 8 9 10 11
    第 6 位是:w

需要注意的是空格也会占据一个索引号。

三、列表类型的方法

列表类型的使用方法有很多,可以概括为增·添·删·改,但是我们常用的几种方法一定要掌握,我们首先通过输入

print(dir(list))

来获取,同理字典的方法也可以通过这种方式来获取,只需要将list替换成dict。

1.append(参数)方法

功能:在列表的最后添加一个元素
演示代码:

ls = ['汽车','火车','邮轮','飞机']
ls.append('游艇')
print(ls)

代码执行结果:

['汽车', '火车', '邮轮', '飞机', '游艇']

2.clear()方法

功能:清除列表中的元素,括号中不需要填入任何参数
演示代码:

ls = ['汽车','火车','邮轮','飞机']
ls.clear()
print(ls)

代码执行结果:

[]

3.copy()方法

功能:复制一个新的列表
演示代码:

ls = ['汽车','火车','邮轮','飞机']
ls_new1 = ls.copy()
ls.clear()
print(ls)
print(ls_new1)

代码执行结果:

[]
['汽车', '火车', '邮轮', '飞机']

我们可以看到通过copy()方法得到的新列表和旧列表是两个独立的列表,互不影响。

4.count(参数)方法

功能:统计列表中的参数的个数
演示代码:

ls = ['汽车','火车','邮轮','飞机','火车','火车']
ls_count = ls.count('火车')
print(ls_count)

代码执行结果:

3

5.index(参数)方法

功能:获取元素在列表中的索引号
演示代码:

ls = ['汽车','火车','邮轮','飞机']
ls_index = ls.index('火车')
print(ls_index)

代码执行结果:

1

6.pop(参数)方法

功能:删除列表中索引号为参数的元素
演示代码:

ls = ['汽车','火车','邮轮','飞机']
ls_pop = ls.pop(1)
print(ls_pop)

代码执行结果:

火车

7.sort(参数)方法

功能:对列表进行原地排序(直接修改原列表,不创建新列表),默认按升序排列。
我们先演示升序排列
演示代码:

nums = [3, 1, 4, 2]
nums.sort()
print(nums)

代码执行结果:

[1, 2, 3, 4]

可以看到没有填入参数的时候,函数默认升序排列,也可以填入
reverse=False,表示升序排列。
接下来演示降序排列
演示代码:

nums = [3, 1, 4, 2]
nums.sort(reverse=True)  # 降序
print(nums)  

代码执行结果:

[4, 3, 2, 1]

可以看到,当参数为reverse=True时,列表进行了降序排列。对之后使用列表提供了便利。

更多推荐