【python基础知识】列表简介

文章目录

在Python中,列表(List)是最常用的数据结构之一。它可以存储任意数量、任意类型的数据,并且支持动态增删改查。本文将详细介绍列表的核心操作、排序技巧、遍历方法以及切片复制等高级用法。

列表的基本操作(增删改查)

列表是一种可变的有序集合,使用方括号 [] 表示。

创建列表

python 复制代码
# 空列表
empty_list = []

# 包含不同数据类型的列表
mixed_list = [1, "apple", True, 3.14]

# 嵌套列表
nested_list = [[1, 2], [3, 4]]

添加元素

python 复制代码
fruits = ["apple", "banana"]

# 在末尾添加元素
fruits.append("cherry")  # 结果:['apple', 'banana', 'cherry']

# 在指定位置插入元素
fruits.insert(1, "grape")  # 结果:['apple', 'grape', 'banana', 'cherry']

删除元素

python 复制代码
# 根据索引删除
popped = fruits.pop(1)  # 删除 'grape',并返回该元素

# 根据值删除(第一个匹配项)
fruits.remove("apple")  # 结果:['banana', 'cherry']

# 清空列表
fruits.clear()  # 结果:[]

修改元素

python 复制代码
numbers = [1, 2, 3]
numbers[1] = 20  # 结果:[1, 20, 3]

查询元素

python 复制代码
# 判断元素是否存在
if "apple" in fruits:
    print("Found!")

# 获取元素索引
index = fruits.index("banana")  # 返回 0

# 统计元素出现次数
count = fruits.count("cherry")  # 返回 1

列表排序技巧

Python提供了两种排序方式:原地排序和返回新列表的排序。

原地排序(修改原列表)

python 复制代码
numbers = [3, 1, 4]
numbers.sort()  # 结果:[1, 3, 4]

# 降序排序
numbers.sort(reverse=True)  # 结果:[4, 3, 1]

# 自定义排序(按字符串长度)
words = ["apple", "grape", "banana"]
words.sort(key=len)  # 结果:['apple', 'grape', 'banana']

返回新列表的排序

python 复制代码
numbers = [3, 1, 4]
sorted_numbers = sorted(numbers)  # 原列表不变,返回 [1, 3, 4]

# 降序
sorted_numbers = sorted(numbers, reverse=True)  # 返回 [4, 3, 1]

遍历列表(for循环)

遍历是处理列表数据的核心操作,Python提供了多种遍历方式。

基本遍历

python 复制代码
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

获取索引和值(enumerate)

python 复制代码
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

遍历并修改列表(需通过索引)

python 复制代码
numbers = [1, 2, 3]
for i in range(len(numbers)):
    numbers[i] *= 2  # 结果:[2, 4, 6]

切片操作与列表复制

切片是Python列表的高级特性,可以高效地获取子列表或复制列表。

切片语法

python 复制代码
my_list = [0, 1, 2, 3, 4, 5]

# 获取索引1到3的元素(不包含3)
slice1 = my_list[1:3]  # 结果:[1, 2]

# 获取前3个元素
slice2 = my_list[:3]  # 结果:[0, 1, 2]

# 获取从索引2开始的所有元素
slice3 = my_list[2:]  # 结果:[2, 3, 4, 5]

# 步长为2(每隔一个元素取一个)
slice4 = my_list[::2]  # 结果:[0, 2, 4]

# 反转列表
reversed_list = my_list[::-1]  # 结果:[5, 4, 3, 2, 1, 0]

列表复制

python 复制代码
# 错误方式:仅创建引用
list1 = [1, 2, 3]
list2 = list1  # list2和list1指向同一对象

# 正确方式:使用切片复制
list3 = list1[:]  # 创建独立副本

# 或使用copy()方法
list4 = list1.copy()  # 效果同上

深拷贝与浅拷贝

python 复制代码
# 浅拷贝(只复制一层)
nested_list = [[1], [2]]
shallow_copy = nested_list.copy()
shallow_copy[0][0] = 100  # 会同时修改原列表

# 深拷贝(完全独立)
import copy
deep_copy = copy.deepcopy(nested_list)
deep_copy[0][0] = 200  # 只修改深拷贝的列表

列表常用方法速查表

方法 描述
append(x) 在列表末尾添加元素x
insert(i, x) 在索引i处插入元素x
remove(x) 删除第一个值为x的元素
pop([i]) 删除并返回索引i处的元素(默认最后一个)
clear() 清空列表
sort() 原地排序
sorted() 返回排序后的新列表
reverse() 反转列表元素顺序
copy() 返回列表的浅拷贝
count(x) 返回元素x出现的次数
index(x) 返回元素x第一次出现的索引

总结

列表是Python中最灵活的数据结构之一,掌握列表的增删改查、排序遍历以及切片复制等操作,是编写高效Python代码的基础。建议通过实际项目练习来加深理解,比如处理数据集合、实现算法等。

相关推荐
大模型铲屎官12 分钟前
【深度学习-Day 31】CNN基石:彻底搞懂卷积层 (Convolutional Layer) 的工作原理
人工智能·pytorch·python·深度学习·机器学习·cnn·llm
struggle20251 小时前
DeepForest开源程序是用于 Airborne RGB 机器学习的 Python 软件包
开发语言·python
杜大哥1 小时前
Python:.py文件如何变成双击可执行的windows程序?(版本1)
开发语言·windows·python
四川兔兔2 小时前
Pytorch 实战四 VGG 网络训练
人工智能·pytorch·python·深度学习·机器学习·回归·vgg网络
猫头虎2 小时前
2025最新Python 100个常用函数在线体验项目
android·java·python·pycharm·django·pandas·pip
学统计的程序员2 小时前
JAVA锁机制:对象锁与类锁
java·开发语言
A.A呐2 小时前
【Linux第四章】gcc、makefile、git、GDB
linux·c语言·开发语言·c++·git
Morpheon2 小时前
使用 R 处理图像
开发语言·计算机视觉·r语言
微信公众号:AI创造财富2 小时前
构建 docket uable to prepar context: path “.“ not found
python·plotly·flask·pillow·ipython·tornado
烛阴2 小时前
Python多进程开发实战:轻松突破GIL瓶颈
前端·python