百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Python新手必看|列表操作全攻略(增删改查+切片+推导式)

xsobi 2025-04-08 20:15 18 浏览

一、为什么列表是Python的"万能容器"?

作为最灵活的序列类型,列表支持:

  • 存储任意类型数据(数字/字符串/对象)
  • 动态增减元素
  • 快速索引访问
  • 丰富的内置方法
Bash
python
Bash
# 创建包含不同数据类型的列表
my_list = ["Hello", 42, True, [1,2,3]]

二、增删改查四步曲(附代码对比)

1. 添加元素

python
# 在末尾追加
students = ["Alice"]
students.append("Bob")  # ['Alice', 'Bob']

# 指定位置插入
students.insert(1, "Charlie")  # ['Alice', 'Charlie', 'Bob']

2. 删除元素

python
# 删除指定值
fruits = ["apple", "banana", "apple"]
fruits.remove("apple")  # ['banana', 'apple']

# 按索引删除
numbers = [1,2,3,4]
numbers.pop(1)  # [1,3,4]

3. 修改元素

python
# 直接赋值
scores = [85, 90, 78]
scores[1] = 95  # [85,95,78]

# 批量修改
for i in range(len(scores)):
    scores[i] += 5  # [90,100,83]

4. 查找元素

python
# 获取索引
movies = ["Inception", "Interstellar", "The Dark Knight"]
print(movies.index("Interstellar"))  # 输出 1

# 统计出现次数
votes = [1, 2, 2, 3, 3, 3]
print(votes.count(3))  # 输出 3

三、切片操作:Python的"魔法切片"

掌握这5种用法就够了:

python
# 基础切片
prices = [10, 20, 30, 40, 50]
slice1 = prices[1:4]  # [20,30,40]

# 步长控制
slice2 = prices[::2]  # [10,30,50]

# 倒序输出
slice3 = prices[::-1]  # [50,40,30,20,10]

# 超出范围处理
slice4 = prices[10:]  # 空列表

# 复制列表
slice5 = prices[:]  # 创建新副本

四、列表推导式:让代码变简洁的利器

基础写法

python
# 筛选偶数平方
squares = [x**2 for x in range(10) if x%2 ==0]
# 输出 [0, 4, 16, 36, 64, 81, 100]

# 嵌套循环生成乘法表
multiplication = [
    [i*j for j in range(1,4)] 
    for i in range(1,4)
]
# 输出 [[1,2,3], [2,4,6], [3,6,9]]

高级技巧

python
# 结合条件表达式
even_odd = ["Even" if num%2==0 else "Odd" for num in range(5)]
# 输出 ['Even', 'Odd', 'Even', 'Odd', 'Even']

# 使用map函数
squared = list(map(lambda x: x**2, range(5)))
# 输出 [0,1,4,9,16]

五、常见错误与解决方案

  1. 索引越界
    → 采用if len(lst) > index:判断或使用try-except
  2. 可变对象陷阱
  3. python
  4. a = [1,2,3] b = a # 引用相同对象 b.append(4) # a也会变成[1,2,3,4]
  5. 浅拷贝问题
    → 使用copy()方法或切片[:]创建独立副本

六、实战案例:电商数据分析

python
# 模拟订单数据
orders = [
    {"product": "手机", "price": 2999},
    {"product": "耳机", "price": 199},
    {"product": "平板", "price": 1499}
]

# 筛选高价商品
expensive = [item for item in orders if item["price"] > 1500]
# 输出 [{'product': '手机', 'price': 2999}, {'product': '平板', 'price': 1499}]

# 计算总销售额
total = sum(item["price"] for item in orders)
# 输出 5697

七、学习路线建议

  1. 掌握extend()与+的区别
    → extend()就地添加,+生成新列表
  2. 深入理解list.sort() vs sorted()
    → 原位排序与生成新列表
  3. 尝试enumerate()遍历索引
  4. python
  5. for idx, name in enumerate(students): print(f"序号:{idx+1}, 姓名:{name}")
  6. 预习list comprehensions vs generator expressions
    → 内存占用差异对比

结语:通过本文的系统学习,您已掌握Python列表操作的80%核心技能。建议立即打开编辑器,尝试完成文中的代码示例,并思考如何将这些技巧应用到实际项目中。遇到问题可查阅官方文档,或在评论区提问交流。

相关推荐

249个Linux Shell脚本经典案例,拿来即用(附PDF)

作为一名Linux运维工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,发现大家对Shell脚本都有“心结”,要么觉得自己写出来不好看,要么根本无从下手。下...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境

工欲善其事必先利其器。我们先搞定Echo环境。Go开发环境这个系列基于Go1.14.4,Linux系统。安装Go的方式有很多,可以在这里https://studygolang.com/...

连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结

在Linux系统中使用echo命令和printf命令都可以实现信息的输出功能,下面我们分别看这两个命令的应用案例。echo1.使用echo命令创建一个脚本文件菜单功能描述:echo命...

在Linux中改变echo输出颜色的方法

技术背景在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色。例如,在脚本中使用不同颜色区分错误信息、警告信息和正常信...

Spring框架中applicationContext.xml和spring - servlet.xml的区别

技术背景在Spring框架里,applicationContext.xml和spring-servlet.xml是两个重要的配置文件。Spring允许在父子层次结构中定义多个上下文,这两个文件在不...

Tomcat服务器配置与优化:让Java应用飞得更高更远

Tomcat服务器配置与优化:让Java应用飞得更高更远Tomcat作为一款轻量级且功能强大的开源JavaServlet容器,无疑是许多中小型项目的首选服务器。然而,Tomcat的性能和稳定性并非天...

分享 5 个正则表达式的实际应用场景案例

转载说明:原创不易,未经授权,谢绝任何形式的转载在计算机编程的广泛领域中,某些技术具有改变我们如何处理和提取文本内容中信息的能力。在这些强大工具中,正则表达式成为每个开发者工具库中基本且不可或缺的组成...

最简洁详细的SSM框架整合(ssm框架详细介绍)

创建项目和SSM框架整合思路一、创建项目因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。创建项目目录如下,同时,项目需要的包和文件已手动创建好了:项目目录上图中,a...

使用JSP 2避免JSP文件中的Java代码

技术背景在早期的JSP开发中,使用脚本片段(<%%>、<%!%>、<%=%>)嵌入Java代码是常见做法,但这种方式存在诸多弊端。随着JSP2的出现,标签库...

微信安卓测试版8.0.28开发者更新内容公布

IT之家9月7日消息,微信安卓平台迎来了8.0.28测试版更新,相比上一次更新安装包体积有所减小,文件详细信息如下:微信安卓内测版8.0.28(ARM64)安装包文件大小254MB...

疯传阿里内网的SpringMVC笔记,被一个离职员工泄露,手慢无

一、简介1.介绍SpringMVC是实现MVC的轻量级Web框架,底层封装了servlet2.特点1.轻量级,简单易学2.约定优于配置3.与Spring兼容性好,无缝结合5.支持直接一个方法对一...

学习笔记之Struts2—工作原理图(struts1工作原理)

本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)1.初始概念struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。2.web.xml&l...

Spring MVC工作流程及请求处理机制全解

SpringMVC工作流程及请求处理机制全解作为一个Java开发者,你一定对Spring框架有所耳闻。今天我们就来详细聊聊SpringMVC,这是Spring家族中最常用的Web层框架之一。Spr...

在Javaweb中实现发送简单邮件(java实现邮件收发)

前言当我们在一个网站中进行注册账户成功后,通常会收到一封来自该网站的邮件。邮件中显示我们刚刚申请的账户和密码以及一些其他的广告信息。在上一篇中用Java实现了发送qq邮件的功能,今天我们来实现一个这样...