「Python系列」Python列表

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 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运算符
相关文章
|
5天前
|
索引 Python
Python 中寻找列表最大值位置的方法
本文介绍了Python中找列表最大值及其位置的三种方法:1) 使用内置`max()`和`index()`函数;2) 通过循环遍历;3) 利用`enumerate()`函数和生成器表达式。每种方法均附有示例代码,其中`enumerate()`方法在保证效率的同时代码更简洁。
31 2
|
5天前
|
存储 运维 数据挖掘
Python列表中每个元素前面连续重复次数的数列统计
Python列表中每个元素前面连续重复次数的数列统计
13 1
|
5天前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
20 2
|
23小时前
|
开发工具 Python
Python列表和字典前面为什么要加星号( )?_python一个 代表列表
Python列表和字典前面为什么要加星号( )?_python一个 代表列表
|
3天前
|
数据采集 数据挖掘 Python
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
|
3天前
|
存储 索引 Python
【python学习】列表、元组、字典、集合,秋招是不是得到处面试
【python学习】列表、元组、字典、集合,秋招是不是得到处面试
|
5天前
|
存储 机器学习/深度学习 数据可视化
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
9 1
|
5天前
|
数据挖掘 计算机视觉 Python
Python实现对规整的二维列表中每个子列表对应的值求和
Python实现对规整的二维列表中每个子列表对应的值求和
12 0
|
5天前
|
存储 数据采集 数据可视化
Python列表到Excel表格第一列的转换技术详解
Python列表到Excel表格第一列的转换技术详解
9 0
|
5天前
|
Python
【Python操作基础】——列表操作
【Python操作基础】——列表操作