「Python系列」Python列表

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: Python列表(List)是Python中最常用的数据结构之一,它允许你存储一个有序的元素集合。列表中的元素可以是不同类型,并且列表的大小是动态的,可以在运行时增长或缩小。

一、Python列表

Python列表(List)是Python中最常用的数据结构之一,它允许你存储一个有序的元素集合。列表中的元素可以是不同类型,并且列表的大小是动态的,可以在运行时增长或缩小。

创建列表

你可以使用方括号 [] 来创建一个列表,元素之间用逗号分隔。

# 创建一个空列表
empty_list = []

# 创建一个包含不同类型元素的列表
mixed_list = [1, "hello", 3.14, True]

# 创建一个包含整数的列表
integer_list = [1, 2, 3, 4, 5]

# 创建一个包含列表的列表(嵌套列表)
nested_list = [1, [2, 3], 4]

访问列表元素

你可以通过索引来访问列表中的元素。索引从0开始。

# 访问列表中的第一个元素
first_element = integer_list[0]  # 输出: 1

# 访问列表中的最后一个元素
last_element = integer_list[-1]  # 输出: 5

# 访问列表中的第三个元素
third_element = integer_list[2]  # 输出: 3

列表操作

列表支持多种操作,包括添加、删除、修改元素等。

# 添加元素到列表末尾
integer_list.append(6)  # integer_list 变为 [1, 2, 3, 4, 5, 6]

# 插入元素到指定位置
integer_list.insert(1, 0)  # 在索引1处插入0,integer_list 变为 [1, 0, 2, 3, 4, 5, 6]

# 删除指定位置的元素
integer_list.remove(3)  # 删除元素3,integer_list 变为 [1, 0, 2, 4, 5, 6]

# 删除指定索引的元素
integer_list.pop(1)  # 删除索引1处的元素,integer_list 变为 [1, 2, 4, 5, 6],并返回被删除的元素0

# 列表切片,获取子列表
sub_list = integer_list[1:4]  # 获取索引1到3的元素,sub_list 变为 [2, 4, 5]

# 修改列表中的元素
integer_list[2] = 9  # 将索引2处的元素4修改为9,integer_list 变为 [1, 2, 9, 5, 6]

# 列表排序
integer_list.sort()  # 将列表按升序排序,integer_list 变为 [1, 2, 5, 6, 9]

# 反转列表
integer_list.reverse()  # 将列表反转,integer_list 变为 [9, 6, 5, 2, 1]

列表的用途

  • 存储有序的数据集合
  • 作为函数参数和返回值
  • 在循环中迭代
  • 与其他数据结构(如元组、集合、字典)一起使用

列表推导式

列表推导式(List Comprehensions)是Python中创建列表的一种简洁方法。

# 创建一个包含1到10之间所有偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0]  # 输出: [2, 4, 6, 8, 10]

# 创建一个包含1到10之间所有数字的平方的列表
squares = [x**2 for x in range(1, 11)]  # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表推导式提供了一种简洁且可读的方式来创建和操作列表。

二、Python列表脚本操作符

Python列表支持多种操作符,用于执行列表的常用操作。以下是一些常用的列表操作符和它们的用法:

1. 索引操作符 []

用于访问列表中的元素。

my_list = [10, 20, 30, 40, 50]
print(my_list[0])  # 输出: 10
print(my_list[2])  # 输出: 30

2. 切片操作符 [:]

用于获取列表的一个子集(子列表)。

my_list = [10, 20, 30, 40, 50]
print(my_list[1:4])  # 输出: [20, 30, 40]

3. 连接操作符 +

用于连接两个列表。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list)  # 输出: [1, 2, 3, 4, 5, 6]

4. 重复操作符 *

用于重复列表。

my_list = [1, 2, 3]
repeated_list = my_list * 3
print(repeated_list)  # 输出: [1, 2, 3, 1, 2, 3, 1, 2, 3]

5. 成员关系操作符 innot in

用于检查一个元素是否存在于列表中。

my_list = [1, 2, 3, 4, 5]
print(2 in my_list)  # 输出: True
print(6 not in my_list)  # 输出: True

6. 长度操作符 len()

用于获取列表的长度(即元素的数量)。

my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 输出: 5

7. 列表比较操作符 <<=>>===!=

用于比较两个列表。列表比较是基于元素逐个比较,且列表必须长度相同才能比较。

list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = [1, 2, 4]

print(list1 == list2)  # 输出: True
print(list1 != list3)  # 输出: True
print(list1 < list3)   # 输出: True,因为第一个不同的元素是3和4,3<4

8. 列表方法

列表还提供了许多内置方法,如 append(), extend(), insert(), remove(), pop(), index(), count(), sort(), reverse() 等,用于修改和操作列表。

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

# 添加元素到列表末尾
my_list.append(6)
print(my_list)  # 输出: [1, 2, 3, 4, 5, 6]

# 扩展列表,添加另一个列表的所有元素
my_list.extend([7, 8, 9])
print(my_list)  # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 在指定位置插入元素
my_list.insert(1, 0)
print(my_list)  # 输出: [1, 0, 2, 3, 4, 5, 6, 7, 8, 9]

# 删除指定元素(第一个匹配项)
my_list.remove(2)
print(my_list)  # 输出: [1, 0, 3, 4, 5, 6, 7, 8, 9]

# 删除指定索引的元素,并返回它
popped_element = my_list.pop(1)
print(popped_element)  # 输出: 0
print(my_list)

三、Python 列表截取与拼接

在Python中,列表的截取和拼接是常见的操作。以下是关于这些操作的详细解释:

列表截取(切片)

列表切片是通过索引来截取列表中的一部分元素,并返回一个新的列表。切片的语法是:list[start:end:step]

  • start:起始索引,包含该索引。
  • end:结束索引,不包含该索引。如果省略,将使用列表的最后一个元素。
  • step:步长,表示每隔多少个元素取一个元素。如果省略,默认为1。
# 创建一个列表
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 截取从索引1到索引4(不包含4)的元素
sliced_list = my_list[1:4]
print(sliced_list)  # 输出: [1, 2, 3]

# 每隔一个元素截取
sliced_list = my_list[::2]
print(sliced_list)  # 输出: [0, 2, 4, 6, 8]

# 从索引5开始到列表末尾
sliced_list = my_list[5:]
print(sliced_list)  # 输出: [5, 6, 7, 8, 9]

# 截取到索引5(不包含5)
sliced_list = my_list[:5]
print(sliced_list)  # 输出: [0, 1, 2, 3, 4]

# 负数索引表示从列表末尾开始计数
sliced_list = my_list[-3:]
print(sliced_list)  # 输出: [7, 8, 9]

列表拼接

列表拼接是将两个或多个列表连接成一个新的列表。Python中,可以通过+操作符或者extend()方法来实现列表的拼接。

使用+操作符

# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 使用+操作符拼接列表
combined_list = list1 + list2
print(combined_list)  # 输出: [1, 2, 3, 4, 5, 6]

使用extend()方法

extend()方法会将一个列表的所有元素添加到另一个列表的末尾,而不会创建新的列表。

# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 使用extend()方法将list2的元素添加到list1的末尾
list1.extend(list2)
print(list1)  # 输出: [1, 2, 3, 4, 5, 6]

# 注意,list2本身并没有改变
print(list2)  # 输出: [4, 5, 6]

这两种方法都可以实现列表的拼接,但它们的行为是不同的:+操作符会创建一个新的列表,而extend()方法会修改原有的列表。

列表与字符串的拼接

列表和字符串不能直接拼接,因为它们是不同类型的数据结构。但是,你可以将列表转换为字符串,然后与其他字符串拼接。

# 创建一个列表
my_list = ['Hello', 'World']

# 将列表转换为字符串,并用空格拼接
combined_string = ' '.join(my_list)
print(combined_string)  # 输出: Hello World

在这个例子中,join()方法将列表my_list中的元素用空格连接起来,生成了一个新的字符串combined_string

四、Python列表函数&方法

Python列表(list)是一种非常灵活和常用的数据结构,它包含了一系列有序的元素。Python为列表提供了许多内置的函数和方法,以便用户可以对列表进行各种操作。以下是一些常用的列表函数和方法:

列表函数

  1. list():将一个可迭代的对象(如元组、字符串、集合等)转换为列表。
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list)  # 输出: [1, 2, 3]
  1. len():返回列表的长度(即列表中元素的数量)。
my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 输出: 5

列表方法

  1. append(item):在列表的末尾添加一个元素。
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出: [1, 2, 3, 4]
  1. extend(iterable):在列表的末尾一次性添加另一个可迭代对象的所有元素。
my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list)  # 输出: [1, 2, 3, 4, 5, 6]
  1. insert(index, item):在指定索引位置插入一个元素。
my_list = [1, 2, 4]
my_list.insert(2, 3)
print(my_list)  # 输出: [1, 2, 3, 4]
  1. remove(item):移除列表中第一个匹配的元素。
my_list = [1, 2, 3, 2, 4]
my_list.remove(2)
print(my_list)  # 输出: [1, 3, 2, 4]
  1. pop(index):移除并返回指定索引位置的元素。如果没有指定索引,则默认移除并返回最后一个元素。
my_list = [1, 2, 3]
item = my_list.pop(1)
print(my_list)  # 输出: [1, 3]
print(item)     # 输出: 2
  1. index(item):返回列表中第一个匹配元素的索引。
my_list = [1, 2, 3, 2, 4]
print(my_list.index(2))  # 输出: 1
  1. count(item):返回列表中某个元素出现的次数。
my_list = [1, 2, 3, 2, 2, 4]
print(my_list.count(2))  # 输出: 3
  1. reverse():反转列表中的元素顺序。
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list)  # 输出: [4, 3, 2, 1]
  1. sort(key=None, reverse=False):对列表进行排序。key参数指定排序时比较的依据,reverse参数指定是否降序排序(默认为升序)。
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)  # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
  1. clear():移除列表中的所有元素。

    my_list = [1, 2, 3]
    my_list.clear()
    print(my_list)  # 输出: []
    

五、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
相关文章
|
3天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
WK
|
21天前
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
27 9
|
20天前
|
Python
探索Python中的列表推导式
【10月更文挑战第20天】在编程世界里,时间就是一切。Python的列表推导式是节约时间、简化代码的一大利器。本文将带你深入理解并有效利用这一强大工具,从基础到高级用法,让你的代码更加简洁高效。
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 6
SciPy教程之常量模块介绍:涵盖公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率及力学单位。示例展示了角度单位转换为弧度的几个常用常量。
17 7
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
17 6
|
18天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
16 1
|
19天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
13 1
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
14 1
|
20天前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。