轻松搞定Python List 列表必备方法大全!

f7c1eb3bb9d736b78d284cb40fd4ec0e.png

更多Python学习内容:ipengtao.com

在 Python 编程中,list(列表)是一种非常重要且常用的数据结构。列表可以存储不同类型的元素,并且提供了许多方便的内置方法来操作和处理这些元素。本文将详细介绍 Python 中 list 列表的常用方法,包括其功能和使用示例。通过这些示例,能够更高效地处理列表数据。

1. 创建列表

在 Python 中,创建一个列表非常简单,只需使用方括号 [] 包围一组元素,并且元素之间用逗号 , 分隔。

# 创建一个包含整数的列表
numbers = [1, 2, 3, 4, 5]# 创建一个包含字符串的列表
fruits = ["apple", "banana", "cherry"]# 创建一个混合类型的列表
mixed = [1, "apple", 3.14, True]# 创建一个空列表
empty = []

2. 访问列表元素

你可以使用索引来访问列表中的元素,索引从 0 开始。

fruits = ["apple", "banana", "cherry"]# 访问第一个元素
print(fruits[0])  # 输出:apple# 访问第二个元素
print(fruits[1])  # 输出:banana# 访问最后一个元素
print(fruits[-1])  # 输出:cherry

3. 修改列表元素

通过索引,还可以修改列表中的元素。

fruits = ["apple", "banana", "cherry"]# 修改第二个元素
fruits[1] = "blueberry"
print(fruits)  # 输出:['apple', 'blueberry', 'cherry']

4. 添加元素

append()

append() 方法用于在列表末尾添加一个元素。

fruits = ["apple", "banana", "cherry"]# 在列表末尾添加一个新元素
fruits.append("orange")
print(fruits)  # 输出:['apple', 'banana', 'cherry', 'orange']

insert()

insert() 方法用于在指定位置添加一个元素。

fruits = ["apple", "banana", "cherry"]# 在第二个位置插入一个新元素
fruits.insert(1, "blueberry")
print(fruits)  # 输出:['apple', 'blueberry', 'banana', 'cherry']

extend()

extend() 方法用于将另一个列表中的所有元素添加到当前列表中。

fruits = ["apple", "banana", "cherry"]
more_fruits = ["orange", "grape"]# 将更多水果添加到原始列表
fruits.extend(more_fruits)
print(fruits)  # 输出:['apple', 'banana', 'cherry', 'orange', 'grape']

5. 删除元素

remove()

remove() 方法用于删除列表中第一次出现的指定元素。

fruits = ["apple", "banana", "cherry", "banana"]# 删除第一次出现的 'banana'
fruits.remove("banana")
print(fruits)  # 输出:['apple', 'cherry', 'banana']

pop()

pop() 方法用于删除列表中指定位置的元素(默认是最后一个元素),并返回该元素。

fruits = ["apple", "banana", "cherry"]# 删除并返回最后一个元素
last_fruit = fruits.pop()
print(last_fruit)  # 输出:cherry
print(fruits)  # 输出:['apple', 'banana']# 删除并返回第二个元素
second_fruit = fruits.pop(1)
print(second_fruit)  # 输出:banana
print(fruits)  # 输出:['apple']

del

del 语句可以用于删除列表中的指定元素或整个列表。

fruits = ["apple", "banana", "cherry"]# 删除第二个元素
del fruits[1]
print(fruits)  # 输出:['apple', 'cherry']# 删除整个列表
del fruits

6. 列表切片

切片操作可以用来访问列表中的一部分元素。切片语法为 list[start:stop:step]

fruits = ["apple", "banana", "cherry", "orange", "grape"]# 获取从第二个元素到第四个元素的切片
slice_fruits = fruits[1:4]
print(slice_fruits)  # 输出:['banana', 'cherry', 'orange']# 获取每隔一个元素的切片
step_fruits = fruits[::2]
print(step_fruits)  # 输出:['apple', 'cherry', 'grape']# 获取从第三个元素到末尾的切片
end_fruits = fruits[2:]
print(end_fruits)  # 输出:['cherry', 'orange', 'grape']

7. 列表排序

sort()

sort() 方法用于对列表进行原地排序(即修改原列表)。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]# 升序排序
numbers.sort()
print(numbers)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]# 降序排序
numbers.sort(reverse=True)
print(numbers)  # 输出:[9, 6, 5, 5, 4, 3, 2, 1, 1]

sorted()

sorted() 函数用于返回一个新的已排序列表,而不修改原列表。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]# 返回一个新的升序排序列表
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
print(numbers)  # 输出:[3, 1, 4, 1, 5, 9, 2, 6, 5] (原列表未改变)

8. 列表反转

reverse()

reverse() 方法用于原地反转列表中的元素。

fruits = ["apple", "banana", "cherry"]# 反转列表
fruits.reverse()
print(fruits)  # 输出:['cherry', 'banana', 'apple']

[::-1] 切片

通过切片也可以反转列表中的元素。

fruits = ["apple", "banana", "cherry"]# 通过切片反转列表
reversed_fruits = fruits[::-1]
print(reversed_fruits)  # 输出:['cherry', 'banana', 'apple']

9. 列表推导式

列表推导式是一种简洁的创建列表的方法,能够有效地提高代码的可读性。

示例

# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 创建一个包含偶数的列表
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens)  # 输出:[2, 4, 6, 8, 10]

总结

Python列表常用的方法及其功能:

方法功能
append()在列表末尾添加一个元素
insert()在指定位置插入一个元素
extend()将另一个列表中的所有元素添加到当前列表中
remove()删除列表中第一次出现的指定元素
pop()删除并返回列表中指定位置的元素
sort()对列表进行原地排序
sorted()返回一个新的已排序列表
reverse()原地反转列表中的元素
[start:stop]通过切片获取列表中的一部分元素
[::-1]通过切片反转列表
list()创建一个新列表
len()返回列表的长度
index()返回指定元素在列表中的第一个匹配项的索引
count()返回指定元素在列表中出现的次数
clear()删除列表中的所有元素
copy()返回列表的浅复制
list comprehension通过表达式创建一个新列表
# 总结示例代码# 创建一个列表
fruits = ["apple", "banana", "cherry"]# 访问元素
print(fruits[0])  # 输出:apple# 修改元素
fruits[1] = "blueberry"
print(fruits)  # 输出:['apple', 'blueberry', 'cherry']# 添加元素
fruits.append("orange")
print(fruits)  # 输出:['apple', 'blueberry', 'cherry', 'orange']# 删除元素
fruits.remove("blueberry")
print(fruits)  # 输出:['apple', 'cherry', 'orange']# 列表切片
print(fruits[1:3])  # 输出:['cherry', 'orange']# 列表排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print(numbers)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]# 列表反转
fruits.reverse()
print(fruits)  # 输出:['orange', 'cherry', 'apple']# 列表推导式
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

通过本文的详细介绍和示例代码,相信你已经对 Python 中 list 列表的常用方法有了更加深入的理解和掌握。在日常编程中,熟练运用这些方法将大大提高你的工作效率。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!


如果想要系统学习Python、Python问题咨询,或者考虑做一些工作以外的副业,都可以扫描二维码添加微信,围观朋友圈一起交流学习。

a9c9c31b77437c6c19f325c097638c93.gif

我们还为大家准备了Python资料和副业项目合集,感兴趣的小伙伴快来找我领取一起交流学习哦!

a5ab521c19aa590cc6c57dd4a019ae37.jpeg

往期推荐

历时一个月整理的 Python 爬虫学习手册全集PDF(免费开放下载)

Python基础学习常见的100个问题.pdf(附答案)

学习 数据结构与算法,这是我见过最友好的教程!(PDF免费下载)

Python办公自动化完全指南(免费PDF)

Python Web 开发常见的100个问题.PDF

肝了一周,整理了Python 从0到1学习路线(附思维导图和PDF下载)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【笔记】HashMap的头插死循环问题

HashMap头插死循环是指在JDK1.7中,多线程环境下,HashMap进行扩容时由于多个线程一起执行扩容,可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下: // hashmap由数组链表构成 void transfer(Entry[] ne…

Android 13 修改系统导航默认值

Android 13 原生系统上,设置-系统-手势-系统导航 菜单,可以修改系统导航方式。 手势导航: 三按钮导航: adb 获取当前导航方式,手势导航 是 2 ,三按钮导航是 0 。 settings get secure navigation_mode 修…

电脑网络动态IP配置:步骤详解与实用指南

在构建和管理电脑网络时,IP地址的配置是一个关键步骤。IP地址是设备在网络中的唯一标识符,它决定了设备如何与其他设备进行通信。有两种主要的IP地址类型:静态IP和动态IP。静态IP是手动配置的,而动态IP则是由网络中的DHCP服务器自…

Android C++系列:内存知识整理

1. 控制C的内存分配 在嵌入式系统中使用C的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释…

202406最新manjaro安装sogou输入法解决方案(采用aur本地package+sogou deb包解决方案)

本地执行安装方法 1.拉取源码 git clone https://gitee.com/liushuai05/fcitx-sogoupinyin.git cd fcitx-sogoupinyin 2.获取sogou下载地址并替换到源码中 - 下载地址:https://pinyin.sogou.com/linux/ - 点击立即下载->x86_64->下载,然后右键复…

LoRaWAN在嵌入式网络通信中的应用:打造高效远程监控系统(附代码示例)

引言 随着物联网(IoT)技术的发展,远程监控系统在各个领域的应用越来越广泛。LoRaWAN(Long Range Wide Area Network)作为一种低功耗广域网通信协议,因其长距离传输、低功耗和高可靠性等特点,成为…

407串口01发送

实验一: 工程。 链接:https://pan.baidu.com/s/1g8DV4yZWOix0BbcZ08LYDQ?pwd2176 提取码:2176串口1的使用。发送功能。 单片机发送信息到电脑。 通过串口进行通信。 首先单片机这边。 单片机这边,需要对单片机的串口模块进行使…

zctf2016_note2-堆利用-unlink

一、题目 题目:zctf2016_note2 题目描述:二、WriteUp (一)题目环境 glibc版本2.23 通过patchelf进行修改(二)信息收集 $ checksec note2Arch: amd64-64-littleRELRO: Partial RELRO # (.plt.got)段依…

Redis-HyperLogLog数据类型及其常用命令详解

1.Redis概述 2.HyperLogLog数据类型 HyperLogLog(HLL)是一种用于近似计算大数据集合中唯一元素数量(基数)的概率性数据结构。 概率数据结构: HyperLogLog 使用的是一种概率算法,它可以在极少的内存消耗下估…

SpringBoot2+Vue3开发博客管理系统

项目介绍 博客管理系统,可以帮助使用者管理自己的经验文章、学习心得、知识文章、技术文章,以及对文章进行分类,打标签等功能。便于日后的复习和回忆。 架构介绍 博客管理系统采用前后端分离模式进行开发。前端主要使用技术:Vu…

鸿蒙HarmonyOS服务卡片实战

引言 在现代开发中,服务卡片是不可或缺的一部分,比如音乐,天气类等应用,官网的介绍中写道:卡片让您便捷地预览服务信息,例如查看天气或日历日程等内容。您可将卡片添加到屏幕上,让这类信息触手…

[C++][设计模式][观察者模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一1.FileSplitter.cpp2.MainForm.cpp 2.代码二1.FileSplitter.cpp2.MainForm.cpp 1.动机 在软件构建过程中,需要为某些对象建立一种“通知依赖关系” 一个对象(目标对象)的状态发生改变,所有的依赖对象…

Clickhouse 的性能优化实践总结

文章目录 前言性能优化的原则数据结构优化内存优化磁盘优化网络优化CPU优化查询优化数据迁移优化 前言 ClickHouse是一个性能很强的OLAP数据库,性能强是建立在专业运维之上的,需要专业运维人员依据不同的业务需求对ClickHouse进行有针对性的优化。同一批…

一、企业级架构设计-archimate基础概念

目录 一、标准 二、实现工具 1、Archimate 1、Archimate 基本概念 1、通用元模型 2、结构关系 3、依赖关系 1、服务关系 2、访问关系 3、影响关系 1、影响方式 2、概念 3、关系线 4、案例 4、关联关系 4、动态、节点和其他关系 1、时间或因果关系 2、信息流 …

缓存层持久化

** 读缓存** 分布式缓存 先将所有的缓存数据集中存储在同一个地方,而非重复保存到各个服务器节点中,然后所有的服务器节点都从这个地方读取数据 使用MongoDB的公司最少,目前,Redis比Memcached更流行: (1&…

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 …

【剖析】为什么说RBF神经网络的误差为0

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 机器学习中的模型非常的多,但如果要问有没有这样的一个模型,它的训练误差为0,那么就非RBF神经网络莫属了!下面我们来聊聊,为什么RBF神经网络的训练误差为0。…

了解请求参数与响应参数的区别:初学者指南

在 Web 的开发领域,无论你是前端开发还是后端开发人员,把握请求与响应参数的核心差异是极其重要的。这些参数在客户端和服务器之间的互动中扮演着关键角色。 请求参数的定义及类别 定义 当客户端向服务器提交信息时所使用的数据被称为请求参数。这些参…

【Docker】Docker下载安装_使用阿里云加速配置

1、下载安装 1.1前提条件 安装环境: 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位…

STM32上实现spwm调制原理分析

在STM32微控制器上实现SPWM(正弦脉宽调制,Sinusoidal Pulse Width Modulation)调制的核心是利用高频载波(三角波)与低频基波(正弦波)作比较得出。 那么在STM32里三角波和正弦波分别是什么&…