python列表常用功能介绍

1. 列表介绍

在 Python 中,列表是一种重要的数据结构,它由一组有序的元素组成,这些元素可以是不同类型的对象,比如数字、字符串和其他对象,列表是Python内置的数据结构之一,Python中的列表与数组类似,可以用来存储多个元素,列表是可变的,也就是说,可以向其中添加或删除元素。

1.1 声明和初始化列表

声明一个列表可以使用方括号 [] 或者 list() 函数:

a =  [1, 2, 3, 4, 5]

b = list(range(5))

print(a, b)

输出结果如下:

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

上面代码中,我们声明了两个列表,一个是直接使用方括号来初始化的,另一个是使用 list() 函数初始化的,这两种方式的效果是一样的。

1.2 访问列表元素

Python 中的列表从 0 开始索引,可以使用下标运算符来访问元素,如下所示:

a = [1, 2, 3, 4, 5]

print(a[0]) # 输出 1

print(a[1]) # 输出 2

print(a[-1]) # 输出 5,-1 表示最后一个元素

上面的代码中,我们使用下标运算符访问列表元素,其中 a[-1] 表示访问最后一个元素。

1.3 插入和删除元素

Python 中的列表是可变的,可以向其中添加或删除元素。下面我们来看一下如何向列表中添加元素:

a = [1, 2, 3, 4, 5]

a.append(6) # 添加元素 6

print(a) # 输出 [1, 2, 3, 4, 5, 6]

上面的代码中,我们使用 append() 方法向列表中添加一个新的元素。

可以使用 insert() 方法来插入元素到指定的位置,如下所示:

a = [1, 3, 4, 5]

a.insert(1, 2) # 在下标 1 处插入元素 2

print(a) # 输出 [1, 2, 3, 4, 5]

上面的代码中,我们在列表中的下标 1 处插入了一个新的元素。

列表中还有一些其他的方法用于删除和操作元素,如下所示:

a = [1, 2, 3, 4, 5]

a.remove(3) # 删除元素 3

print(a) # 输出 [1, 2, 4, 5]

a.pop() # 删除最后一个元素

print(a) # 输出 [1, 2, 4]

a.sort() # 排序

print(a) # 输出 [1, 2, 4]

a.reverse() # 反转

print(a) # 输出 [4, 2, 1]

上面的代码中,我们使用了 remove()pop() 方法删除了元素,使用 sort() 进行排序,使用 reverse() 方法进行反转操作。

1.4 列表的长度和统计

可以使用 len() 函数来获取列表的长度:

a = [1, 2, 3, 4, 5]

print(len(a)) # 输出 5

可以使用 count() 方法来统计列表中指定元素的出现次数:

a = [1, 2, 3, 4, 5, 4]

print(a.count(4)) # 输出 2

2. 列表切片操作

Python中的列表还支持切片操作,可以通过切片操作来获取到指定范围内的元素,切片操作的形式如下:

[起始位置:终止位置:步长]

其中,起始位置是需要获取元素的起始下标,终止位置是需要获取元素的终止下标,步长表示获取元素的间距。

接下来,我们来看一下如何使用切片来获取列表中的元素,如下所示:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(a[1:5]) # 输出 [2, 3, 4, 5]

print(a[1:7:2]) # 输出 [2, 4, 6]

print(a[:5]) # 输出 [1, 2, 3, 4, 5]

print(a[::2]) # 输出 [1, 3, 5, 7, 9]

上面的代码中,我们使用了不同的切片操作,可以通过切片操作来获取到指定范围内的元素,非常方便。

3. 列表的复制和拼接

3.1 列表的复制

可以使用 = 运算符来进行列表的复制操作,如下所示:

a = [1, 2, 3, 4, 5]

b = a

print(b) # 输出 [1, 2, 3, 4, 5]

上面的代码中,我们使用 = 运算符将列表 a 的值复制给了列表 b,这样,当 a 中的值发生改变时,b 中的值也会发生改变。

如果我们想要复制一个列表,同时改变列表的值不会影响到原来列表的值,可以使用 copy() 方法来复制,如下所示:

a = [1, 2, 3, 4, 5]

b = a.copy()

a[0] = 0

print(a) # 输出 [0, 2, 3, 4, 5]

print(b) # 输出 [1, 2, 3, 4, 5]

上面的代码中,我们使用 copy() 方法来复制了列表 a 的值,改变了 a 中的值,但是并没有影响到 b 中的值。

3.2 列表的拼接

我们可以使用加号运算符来进行列表的拼接操作,如下所示:

a = [1, 2, 3]

b = [4, 5, 6]

c = a + b

print(c) # 输出 [1, 2, 3, 4, 5, 6]

上面的代码中,我们使用加号运算符将两个列表进行了拼接操作,得到了一个新的列表。

4. 列表的遍历操作

在Python中,我们可以使用 for 循环来对列表进行遍历操作,如下所示:

a = [1, 2, 3, 4, 5]

for i in a:

print(i)

上面的代码中,我们使用 for 循环对列表进行遍历操作,遍历过程中使用变量 i 来保存遍历到的元素。

5. 列表的推导式

Python中提供了一种非常方便的方式来生成列表,那就是使用列表推导式。

列表推导式的一般形式如下:

[expression for item in iterable if condition]

可以理解为一种快速、简洁、可读性高的列表生成方式,其中:

iterable:可以是列表、元组、集合、字典等可迭代对象。

item:每次从 iterable 迭代出的元素。

condition:用来过滤元素。

expression:每次迭代元素计算表达式的值。

接下来,我们通过一些示例来具体了解一下列表推导式的使用方法。

5.1 基本用法

假设我们需要生成一个列表,其中包含 1 到 10 的所有偶数,可以使用列表推导式来实现,如下所示:

a = [i for i in range(1, 11) if i % 2 == 0]

print(a) # 输出 [2, 4, 6, 8, 10]

上面的代码中,我们使用列表推导式的方式来生成了一个包含 1 到 10 的所有偶数的列表。

5.2 嵌套用法

列表推导式还支持嵌套使用,可以使用多个 for 循环来实现嵌套方式生成列表数据。

假设我们需要生成一个九九乘法表,可以使用列表推导式的嵌套方式来实现,如下所示:

a = [(i, j, i * j) for i in range(1, 10) for j in range(1, 10)]

print(a)

上面的代码中,我们使用列表推导式的嵌套方式生成了一个九九乘法表。

6. 列表的高级操作

6.1 枚举

可以使用 enumerate() 函数来获取列表中元素的下标和值:

a = [1, 2, 3, 4, 5]

for i, v in enumerate(a):

print(i, v)

上面的代码中,我们使用 enumerate() 函数来获取列表中的元素下标和值,并使用循环语句来依次输出元素下标和值。

6.2 排序

可以使用 sort() 方法来对列表进行排序,排序后的列表将会按照升序排列:

a = [5, 3, 1, 4, 2]

a.sort()

print(a) # 输出 [1, 2, 3, 4, 5]

上面的代码中,我们使用 sort() 方法对列表进行排序,最终得到了一个升序排列的列表。

此外,还可以使用 sorted() 函数对列表进行排序操作,相比于 sort() 方法,sorted() 函数不会修改原有的列表,而是返回一个排序后的新列表。

a = [5, 3, 1, 4, 2]

b = sorted(a)

print(a) # 输出 [5, 3, 1, 4, 2]

print(b) # 输出 [1, 2, 3, 4, 5]

6.3 过滤器

可以使用 filter() 函数来实现对列表元素的过滤操作。

假设我们需要过滤出所有大于 3 的元素,可以使用 filter() 函数来实现,如下所示:

a = [1, 2, 3, 4, 5]

new_a = filter(lambda x: x > 3, a)

print(list(new_a)) # 输出 [4, 5]

上面的代码中,我们使用 filter() 和 lambda 表达式来过滤出所有大于 3 的元素,并使用 list() 函数将过滤结果转化为列表。

后端开发标签