亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 列表操作:创建、访问、修改与进阶技巧

Python 列表操作

Python 列表是语言中最通用的数据结构之一,能高效存储、组织和操作值序列。本指南涵盖从创建、访问列表元素到切片、推导式及内置方法等进阶技巧。

视频:Python 列表与元组

Python 列表允许同时处理多个项目。例如:

# 编程语言列表
['Python', 'C++', 'JavaScript']

创建 Python 列表

列表通过将元素放入方括号 [] 并用逗号分隔创建。列表可包含任意数量项,支持混合数据类型。

# 整数列表
my_list = [1, 2, 3]

示例:

# 空列表
my_list = []
# 混合数据类型
my_list = [1, "Hello", 3.4]

列表也可包含另一个列表,形成嵌套结构:

# 嵌套列表
my_list = ["mouse", [8, 4, 6], ["a"]]

访问列表元素

Python 提供多种访问方式。

索引

使用 [] 操作符。索引从 0 开始;访问越界索引引发 IndexError,非整数索引引发 TypeError。

my_list = ['p', 'r', 'o', 'b', 'e']
print(my_list[0])  # p
print(my_list[2])  # o
print(my_list[4])  # e
n_list = ["Happy", [2, 0, 1, 5]]
print(n_list[0][1])  # a
print(n_list[1][3])  # 5
print(my_list[4.0])  # TypeError

输出

p o e a 5 Traceback (most recent call last): File "<string>", line 21, in <module> TypeError: list indices must be integers or slices, not float

负索引

负索引从列表末尾计数:-1 为最后一个元素,-2 为倒数第二个,以此类推。

my_list = ['p','r','o','b','e']
print(my_list[-1])  # e
print(my_list[-5])  # p

输出

e p
Python 列表操作:创建、访问、修改与进阶技巧

列表切片

切片使用冒号操作符 : 提取项目范围。起始索引包含,结束索引不包含。

my_list = ['p','r','o','g','r','a','m','i','z']
print(my_list[2:5])  # ['o', 'g', 'r']
print(my_list[5:])   # ['a', 'm', 'i', 'z']
print(my_list[:])    # 完整列表

输出

['o', 'g', 'r'] ['a', 'm', 'i', 'z'] ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

注意:切片返回新列表,原列表保持不变。


修改列表元素

列表可变。可替换单个项或切片。

odd = [2, 4, 6, 8]
odd[0] = 1
print(odd)
odd[1:4] = [3, 5, 7]
print(odd)

输出

[1, 4, 6, 8] [1, 3, 5, 7]

用 append() 添加单个元素,extend() 添加多个。用 + 连接,* 重复。

odd = [1, 3, 5]
odd.append(7)
print(odd)
odd.extend([9, 11, 13])
print(odd)
print(odd + [9, 7, 5])
print(["re"] * 3)

输出

[1, 3, 5, 7] [1, 3, 5, 7, 9, 11, 13] [1, 3, 5, 9, 7, 5] ['re', 're', 're']

用 insert() 或对空切片赋值在特定索引插入元素。

odd = [1, 9]
odd.insert(1, 3)
print(odd)
odd[2:2] = [5, 7]
print(odd)

输出

[1, 3, 9] [1, 3, 5, 7, 9]

删除列表元素

用 del 按索引或切片删除项,或删除整个列表。remove() 删除首个匹配值,pop() 按索引移除并返回元素(或最后一个元素),clear() 清空列表。

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
# 删除单项
del my_list[2]
print(my_list)
# 删除多项
del my_list[1:5]
print(my_list)
# 删除整个列表
del my_list
print(my_list)  # NameError

输出

['p', 'r', 'b', 'l', 'e', 'm'] ['p', 'm'] Traceback (most recent call last): File "<string>", line 18, in <module> NameError: name 'my_list' is not defined

切片赋值也可删除:

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

常用列表方法

方法描述
append()在末尾添加元素
extend()追加另一可迭代对象的所有元素
insert()在指定索引插入项
remove()移除首个出现的值
pop()按索引移除并返回元素(默认最后一个)
clear()清空列表
index()返回值首次出现的索引
count()统计值出现次数
sort()升序排序列表
reverse()反转列表顺序
copy()返回浅拷贝
my_list = [3, 8, 1, 6, 8, 8, 4]
my_list.append('a')
print(my_list)
print(my_list.index(8))  # 1
print(my_list.count(8))  # 3

列表推导式

列表推导式提供生成列表的简洁方式。

pow2 = [2 ** x for x in range(10)]
print(pow2)

输出

[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]

等价于:

pow2 = []
for x in range(10):
    pow2.append(2 ** x)

推导式可包含多个 for 子句或 if 过滤。

>>> pow2 = [2 ** x for x in range(10) if x > 5]
>>> pow2
[64, 128, 256, 512]
>>> odd = [x for x in range(20) if x % 2 == 1]
>>> odd
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
['Python Language', 'Python Programming', 'C Language', 'C Programming']

更多内容见官方 Python 文档。


其他列表操作

成员测试

用 in 或 not in 检查值是否存在。

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
print('p' in my_list)   # True
print('a' in my_list)   # False
print('c' not in my_list)  # True

输出

True False True

遍历列表

用 for 循环处理每个项。

for fruit in ['apple','banana','mango']:
    print("I like", fruit)

输出

I like apple I like banana I like mango

Python

  1. 精通Python数据类型:实战指南
  2. 精通Python运算符:全面指南
  3. 精通Python Pass语句:实战指南
  4. 精通Python函数参数:位置、关键字与默认参数
  5. 精通 Python 字典:创建、操作与进阶技巧
  6. 精通 Python time.sleep():最佳实践、多线程与实战案例
  7. Python 列表完全指南:增删改查、排序、推导式实战
  8. Python 计算平均值:从循环到 NumPy 的四种实战方法
  9. Python list.count() 专家指南:语法、示例与性能解析
  10. Python 列表去重完全指南:七种方法与最佳实践
  11. Python 列表删除元素全攻略:remove、pop、clear 与 del 详解
  12. Python list.index() 详解:查找元素位置的实用指南与示例