当前位置: 首页 > java >正文

【python基础知识】列表简介

文章目录

    • 列表的基本操作(增删改查)
      • 创建列表
      • 添加元素
      • 删除元素
      • 修改元素
      • 查询元素
    • 列表排序技巧
      • 原地排序(修改原列表)
      • 返回新列表的排序
    • 遍历列表(for循环)
      • 基本遍历
      • 获取索引和值(enumerate)
      • 遍历并修改列表(需通过索引)
    • 切片操作与列表复制
      • 切片语法
      • 列表复制
      • 深拷贝与浅拷贝
    • 列表常用方法速查表
    • 总结

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

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

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

创建列表

# 空列表
empty_list = []# 包含不同数据类型的列表
mixed_list = [1, "apple", True, 3.14]# 嵌套列表
nested_list = [[1, 2], [3, 4]]

添加元素

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

删除元素

# 根据索引删除
popped = fruits.pop(1)  # 删除 'grape',并返回该元素# 根据值删除(第一个匹配项)
fruits.remove("apple")  # 结果:['banana', 'cherry']# 清空列表
fruits.clear()  # 结果:[]

修改元素

numbers = [1, 2, 3]
numbers[1] = 20  # 结果:[1, 20, 3]

查询元素

# 判断元素是否存在
if "apple" in fruits:print("Found!")# 获取元素索引
index = fruits.index("banana")  # 返回 0# 统计元素出现次数
count = fruits.count("cherry")  # 返回 1

列表排序技巧

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']

返回新列表的排序

numbers = [3, 1, 4]
sorted_numbers = sorted(numbers)  # 原列表不变,返回 [1, 3, 4]# 降序
sorted_numbers = sorted(numbers, reverse=True)  # 返回 [4, 3, 1]

遍历列表(for循环)

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

基本遍历

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)

获取索引和值(enumerate)

for index, fruit in enumerate(fruits):print(f"Index {index}: {fruit}")

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

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

切片操作与列表复制

切片是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]

列表复制

# 错误方式:仅创建引用
list1 = [1, 2, 3]
list2 = list1  # list2和list1指向同一对象# 正确方式:使用切片复制
list3 = list1[:]  # 创建独立副本# 或使用copy()方法
list4 = list1.copy()  # 效果同上

深拷贝与浅拷贝

# 浅拷贝(只复制一层)
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代码的基础。建议通过实际项目练习来加深理解,比如处理数据集合、实现算法等。

http://www.xdnf.cn/news/10098.html

相关文章:

  • 会议室钥匙总丢失?换预约功能的智能门锁更安全
  • 如何做好一份技术文档:从信息孤岛到知识图谱的进阶之路
  • 国芯思辰| SC751X替换OPA2354/OPA354/OPA4354可调激光器应用方案
  • 网络编程4-epoll
  • 多模态大语言模型arxiv论文略读(101)
  • 大语言模型中的注意力机制详解
  • gitlib 常见命令
  • 【xmb】内部文档148344596
  • nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: 80端口被占用
  • GEARS以及与基础模型结合
  • 产品更新|数字主线深度解析:华望解决方案助力企业数字化转型
  • Linux入门(十一)进程管理
  • 分布式锁和数据库锁完成接口幂等性
  • 深度学习初探:当机器开始思考(superior哥AI系列第1期)
  • 线程池的详细知识(含有工厂模式)
  • STM32通过rt_hw_hard_fault_exception中的LR寄存器追溯程序问题​
  • 深圳南山沙河社区联合心美行动举办“青少年天赋提升”助青春成长
  • 用于工业设备的高精度仪表放大器“NL9620”开始上市~日本首家!高EMC性能的仪表放大器
  • 使用matlab读取txt文件中的2进制数据
  • 文字转图片的字符画生成工具
  • JavaScript 计算两个日期之间天数的全面指南
  • [网页五子棋][对战模块]前后端交互接口(建立连接、连接响应、落子请求/响应),客户端开发(实现棋盘/棋子绘制)
  • 将Kotti从Pyramid1.0升级到2.0 (失败的记录)
  • CATIA高效工作指南——测量分析篇(一)
  • C++ TCP程序增加TLS加密认证
  • Java本地缓存实现方案全解析:原理、优缺点与应用场景
  • C/C++ 面试复习笔记(2)
  • 漫画Android:事件分发的过程是怎样的?
  • JS数组 concat() 与扩展运算符的深度解析与最佳实践
  • MySQL + CloudCanal + Iceberg + StarRocks 构建全栈数据服务