Python 列表(List)基本用法与操作详解
1. 概述
在 Python 中,列表(List)是最常用的数据结构之一。它是一种有序的可变序列,可以存储任意类型的对象,包括数字、字符串、其他列表甚至字典等。列表使用方括号 [] 表示,元素之间用逗号分隔。
Python 列表的基本概念、创建方式、索引访问、切片操作、常用内置函数及修改方法。涵盖了列表的嵌套结构、运算符支持以及列表推导式等核心特性,旨在帮助开发者全面掌握 Python 序列类型中最常用的数据结构。内容包含创建、访问、扩展、查找、统计、排序、反转及推导式等完整操作示例。

在 Python 中,列表(List)是最常用的数据结构之一。它是一种有序的可变序列,可以存储任意类型的对象,包括数字、字符串、其他列表甚至字典等。列表使用方括号 [] 表示,元素之间用逗号分隔。
列表内部的对象可以是字符串、整数、浮点数等,支持混搭类型。
aList = ['apple', 100, 0.01, 'banana', 'A', 'B', 'C']
print(aList)
可以通过下标直接访问列表中的元素。索引从 0 开始,负数索引表示从末尾倒数。
>>> print(aList[0])
'apple'
>>> print(aList[-1])
'C'
通过切片操作可以获取列表中的一部分,语法为 [start:end:step]。
>>> print(aList[4:6])
['A', 'B']
>>> print(aList[::2])
['apple', 0.01, 'A', 'C']
使用内置函数 len() 获取列表长度。
aList = [1, 2, 3, 4, 5]
print(len(aList)) # 输出:5
对于数值型列表,可使用 max() 和 min() 函数。
aList = [1, 2, 3, 4, 5]
print(min(aList)) # 输出:1
print(max(aList)) # 输出:5
+ 运算符:返回一个新的列表,不修改原列表。extend() 方法:就地修改原列表,追加另一个可迭代对象的元素。list1 = [1, 2, 3]
list2 = [100, 200, 300]
list3 = list1 + list2
print(list3) # [1, 2, 3, 100, 200, 300]
list4 = ['a', 'b', 'c']
list5 = list4 * 3
print(list5) # ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']
aList = [1, 2, 3]
b = [4, 5, 6]
aList.extend(b)
print(aList) # [1, 2, 3, 4, 5, 6]
index(): 查找元素首次出现的索引位置。count(): 统计某个元素在列表中出现的次数。aList = ['This', 'is', 'a', 'very', 'good', 'idea']
print(aList.index('very')) # 输出:3
aList = ['to', 'do', 'or', 'not', 'to', 'do']
print(aList.count('to')) # 输出:2
除了上述操作外,列表还支持多种原地修改方法:
append(x): 在列表末尾添加一个元素。insert(i, x): 在指定位置插入元素。remove(x): 删除第一个值为 x 的元素。pop([i]): 移除并返回列表中指定位置的元素(默认为最后一个)。sort(): 对列表进行排序。reverse(): 反转列表顺序。clear(): 清空列表。nums = [3, 1, 4, 1, 5]
nums.append(9) # [3, 1, 4, 1, 5, 9]
nums.insert(0, 0) # [0, 3, 1, 4, 1, 5, 9]
nums.remove(1) # [0, 3, 1, 4, 1, 5, 9] (只删除第一个 1)
val = nums.pop() # 9, nums 变为 [0, 3, 1, 4, 1, 5]
nums.sort() # [0, 1, 1, 3, 4, 5]
nums.reverse() # [5, 4, 3, 1, 1, 0]
列表支持嵌套,即列表中可以包含其他列表、元组或字典等复杂结构。
bList = [100, 200, ['aaa', 'bbb', 'ccc']]
print(bList[2][0]) # 输出:aaa
列表推导式是创建列表的一种简洁方式,常用于根据现有列表生成新列表。
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
evens = [x for x in range(20) if x % 2 == 0]
print(evens) # [0, 2, 4, ..., 18]
copy() 方法或切片 [:],避免浅拷贝带来的副作用。collections.deque。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online