当前位置:首页>python>Python中列表的创建增删改查排序

Python中列表的创建增删改查排序

  • 2026-10-11 08:41:49
Python中列表的创建增删改查排序

Python列表完全指南:从入门到精通,一文掌握所有核心操作!

大家好!我是南瓜老师~今天要和大家分享Python中最常用、最强大的数据结构之一——列表(List)。无论你是Python新手还是有一定经验的开发者,掌握列表的各种操作都是必不可少的技能!

📋 什么是Python列表?

列表是Python中最灵活的数据结构,可以看作是一个“动态数组”,能够存储任意类型的数据,并且长度可以随时改变。

# 创建列表的多种方式

shopping_list = ["苹果", "香蕉", "牛奶", "面包"]  # 购物清单

numbers = [1, 2, 3, 4, 5]                      # 数字列表

mixed = [100, "Python", 3.14, True]            # 混合类型也可以!

empty_list = []                                 # 空列表

🔥 核心操作一:增删改查

1. 添加元素 - 让列表“成长”起来

fruits = ["苹果", "香蕉"]

# 方法1:末尾添加

fruits.append("橙子")  

# 结果:["苹果", "香蕉", "橙子"]

# 方法2:指定位置插入

fruits.insert(1, "葡萄")

# 结果:["苹果", "葡萄", "香蕉", "橙子"]

# 方法3:合并另一个列表

more_fruits = ["芒果", "草莓"]

fruits.extend(more_fruits)

# 结果:["苹果", "葡萄", "香蕉", "橙子", "芒果", "草莓"]

2. 删除元素 - 学会“断舍离”

fruits = ["苹果", "葡萄", "香蕉", "橙子", "芒果"]

# 方法1:按值删除

fruits.remove("葡萄")  # 删除第一个"葡萄"

# 方法2:按索引删除

del fruits[1]  # 删除索引1的元素(香蕉)

# 方法3:弹出并获取值

last_fruit = fruits.pop()  # 删除最后一个并返回

second_fruit = fruits.pop(1)  # 删除索引1的元素并返回

# 方法4:清空所有

fruits.clear()  # 清空列表

3. 修改元素 - 随时“更新换代”

# 直接通过索引修改

colors = ["红", "绿", "蓝"]

colors[1] = "黄"  # 将"绿"改为"黄"

# 结果:["红", "黄", "蓝"]

# 批量修改切片

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

numbers[1:4] = [20, 30, 40]  # 替换第1-3个元素

# 结果:[1, 20, 30, 40, 5]

4. 查找元素 - 快速“定位搜索”

students = ["张三", "李四", "王五", "张三"]

# 查找索引

index = students.index("李四")  # 返回1

# 检查是否存在

if "王五" in students:

    print("王五在名单中!")

# 统计出现次数

count = students.count("张三")  # 返回2

🎯 核心操作二:切片技巧

切片是Python列表的"王牌功能",一定要掌握!

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 基本切片

first_three = numbers[:3]      # [0, 1, 2]

last_three = numbers[-3:]      # [7, 8, 9]

middle = numbers[3:7]          # [3, 4, 5, 6]

# 带步长的切片

even = numbers[::2]            # 偶数索引 [0, 2, 4, 6, 8]

odd = numbers[1::2]           # 奇数索引 [1, 3, 5, 7, 9]

reverse = numbers[::-1]        # 反转列表 [9, 8, ..., 0]

🚀 高级技巧:列表推导式

列表推导式是Python的"语法糖",让代码更简洁高效!

# 传统方式

squares = []

for i in range(10):

    squares.append(i**2)

# 列表推导式(一行搞定!)

squares = [i**2 for i in range(10)]

# 更多例子

# 1. 过滤偶数

evens = [x for x in range(20) if x % 2 == 0]

# 2. 转换大小写

words = ["hello", "world", "python"]

uppercase = [word.upper() for word in words]

# 3. 嵌套推导式

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

flat = [num for row in matrix for num in row]  # 展平二维列表

📊 排序与遍历

排序操作

scores = [85, 92, 78, 90, 88]

# 原地排序(修改原列表)

scores.sort()  # 升序

scores.sort(reverse=True)  # 降序

# 返回新列表(不修改原列表)

sorted_scores = sorted(scores)

# 按特定规则排序

students = [

    ("张三", 85),

    ("李四", 92),

    ("王五", 78)

]

students.sort(key=lambda x: x[1], reverse=True)  # 按分数降序

多种遍历方式

fruits = ["苹果", "香蕉", "橙子"]

# 1. 直接遍历

for fruit in fruits:

    print(f"我喜欢吃{fruit}")

# 2. 带索引遍历

for i, fruit in enumerate(fruits):

    print(f"第{i+1}个水果是:{fruit}")

# 3. 同时遍历多个列表

prices = [5.0, 3.0, 4.5]

for fruit, price in zip(fruits, prices):

    print(f"{fruit}: ¥{price}")

💡 实用小贴士

1. 列表复制要小心!

# 错误的方式(浅拷贝)

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

list2 = list1.copy()  # 只复制了外层列表

list2[0][0] = 99      # 这个修改会影响list1!

# 正确的方式(深拷贝)

import copy

list2 = copy.deepcopy(list1)  # 完全独立的副本

2. 性能优化建议

- ✅ 在列表末尾添加元素:使用 

"append()",速度快

- ⚠️ 在列表开头添加元素:考虑使用 

"deque"

- ✅ 频繁查找:考虑转成 

"set" 集合

- ✅ 大列表处理:使用生成器表达式节省内存

from collections import deque

# 需要频繁在两端操作时

queue = deque(["A", "B", "C"])

queue.appendleft("开始")  # 开头添加,效率高

queue.append("结束")       # 末尾添加

🎁 实战练习

# 练习1:统计列表中各元素出现次数

def count_elements(lst):

    return {x: lst.count(x) for x in set(lst)}

# 练习2:找出列表中的第二大值

def second_largest(lst):

    unique = sorted(set(lst), reverse=True)

    return unique[1] if len(unique) > 1 else None

# 练习3:列表扁平化

def flatten(nested_list):

    return [item for sublist in nested_list for item in sublist]

📈 总结

操作类型 常用方法 时间复杂度

访问元素 

"list[i]" O(1)

末尾添加 

"append()" O(1)

开头添加 

"insert(0, x)" O(n)

查找元素 

"index()" O(n)

删除末尾 

"pop()" O(1)

删除开头 

"pop(0)" O(n)

💬 互动环节

学会了这些列表操作,试试回答这些问题:

1. 如何快速创建一个包含1-100所有偶数的列表?

2. 如何反转一个列表但保持原列表不变?

3. 如何删除列表中所有的重复元素?

答案:

# 1. 创建1-100的偶数列表

evens = [x for x in range(1, 101) if x % 2 == 0]

# 2. 反转列表但不改变原列表

original = [1, 2, 3]

reversed_list = original[::-1]  # 或 list(reversed(original))

# 3. 删除重复元素(保持顺序)

unique = list(dict.fromkeys(original))

最后的小提示:列表是Python编程的基础,多练习、多实践才能真正掌握。建议大家在日常编码中多尝试使用列表推导式等高级特性,让代码更加Pythonic!

如果你觉得这篇文章有帮助,欢迎点赞、收藏、转发!有任何问题或想了解的内容,欢迎在评论区留言~

南瓜老师会继续为大家带来更多Python干货! 🐍✨

关注我们,获取更多编程知识!

#Python编程 #列表操作 #编程技巧 #Python教程

最新文章

随机文章