Python列表及其操作详解,从此不再迷茫!

在前面的文章中,我们详细讲了六大数据类型中的数字类型,字符串类型。相信大家都能够熟练的掌握了。那么今天我们来讲解列表(list)。

这是一种常用且重要的数据类型,List可以用来存储一系列的元素,对于后期的很多数据结构都十分重要。下面我们将详细讲解Python列表的基本操作和常用方法,包括列表类型、访问值、更新、删除元素、脚本操作符、截取与拼接、嵌套列表、列表比较以及常用的函数和方法。

1. 创建列表

列表是由一系列元素组成的有序集合,可以包含不同类型的数据。列表的元素之间用逗号隔开,并用方括号括起来。有两种方法可以创建列表,形式如下:

# 1.用方括号创建
ls = [1,2,3,4]
# 2.用list()函数创建
ls = lsit(1, 2, 3, 4)

下图展示了列表的机构,可以看到,列表可以由多种数据类型构成:

创建列表的两种方式示例:

a.使用方括号,并在其中列出元素:

# 创建一个包含数字的列表
list1 = [1, 2, 3, 4, 5]# 创建一个包含字符串的列表
list2 = ["a", "b", "c", "d", "e"]# 创建一个包含不同类型数据的列表
list3 = [1, "a", True, [1, 2, 3]]

b.使用 list() 函数:

# 将字符串转换为列表
list4 = list("Hello, world!")# 将元组转换为列表
list5 = list((1, 2, 3, 4, 5))

2. 访问列表中的值

上面我们通过了两种方法,创建了列表,现在可以使用索引来访问列表中的元素。列表的访问索引是从 0 开始,即第一个元素的索引为 0,因此第二个元素的索引是1,依此类推。还是下面这张图,索引的方向不一样,索引坐标的值也不一样。

以下,我们通过一些示例代码来具体看看,下面的列表包含了数字、字符串、bool值、浮点数、列表、字典等多种数据类型。

  • 通过索引访问列表中的单个值:
my_list = [1, "apple", True, 3.14, [5,6,7], {"name": "John","age": 30}]# 访问第一个元素
print(my_list[0])  # 输出: 1# 访问第三个元素
print(my_list[2])  # 输出: True
  • 使用负数索引访问列表末尾的元素:
# 最后一个元素
print(my_list[-1])  # {'name': 'John', 'age': 30}# 倒数第三个元素
print(my_list[-3])  # 输出: 3.14
  • 切片(Slicing):访问列表中的一部分元素:
# 访问第二到第四个元素(索引1到3),访问的范围是[a,b],也就是等于a,小于b的区间的元素。
print(my_list[1:4])  # 输出: ['apple', True, 3.14]# 从第三个元素到最后一个元素
print(my_list[2:])  # 输出: [True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}]# 从第一个元素到倒数第二个元素
print(my_list[:-1])  # 输出: [1, 'apple', True, 3.14, [5, 6, 7]]# 使用负数索引进行切片
print(my_list[-3:-1])  # 输出: [3.14, [5, 6, 7]]
  • 检查列表中是否包含某个值:
if 30 in my_list:print("30 存在于列表中")
else:print("30 不存在于列表中")

3. 更新列表

列表是可变的,可以通过添加、删除、修改、扩展和清空元素来修改列表。下面我们一起来看看示例代码:

3.1 添加元素

a. 使用 append() 方法在列表末尾添加一个元素:

my_list = [1, "apple", True, 3.14, [5,6,7], {"name": "John","age": 30}]my_list.append(7)
print(my_list)  # 输出: [1, 'apple', True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}, 7]

b. 使用 insert() 方法在指定位置插入一个元素:

my_list.insert(2, 3)  # 在索引为2的位置插入元素print(my_list)  # 输出:[1, 'apple', 3, True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}] 

3.2 删除元素

a. 使用 remove() 方法删除指定值的第一个元素:

my_list.remove(1)
print(my_list)  # 输出: ['apple', True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}]

b. 使用 pop() 方法删除指定位置的元素(默认为最后一个元素),并返回被删除的元素:

popped_element = my_list.pop(1)  # 删除索引为2的元素,并将其赋值给变量
print(my_list)  # 输出: [1, True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}]
print("被删除的元素是:", popped_element)  # 输出: 被删除的元素是: apple

c. 使用 del 语句删除指定位置的元素:

del my_list[1]
print(my_list)  # 输出: [1, True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}]

3.3 修改元素

直接通过索引赋值

my_list[1] = 100
print(my_list)  # 输出: [1, 100, True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}]

3.4 扩展列表

使用 extend() 方法通过另一个列表扩展当前列表:

new_elements = [6, 7, 8]
my_list.extend(new_elements)
print(my_list)  # 输出: [1, 'apple', True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}, 6, 7, 8]

3.5 拼接列表

使用 + 操作符来拼接列表:

listNew = my_list[0:2] + my_list[3:4] + [my_list[5]]print(listNew)  # 输出:[1, 'apple', 3.14, {'name': 'John', 'age': 30}]

这里需要讲两个知识点,一是在切片访问时,访问的范围是[a,b],也就是等于a,小于b的区间的元素。二是[my_list[5]],这里我们单独访问了一个字典,需要用[],将字典转为列表,才能进行拼接。

3.6 清空列表

使用 clear() 方法清空列表中的所有元素:

my_list.clear()
print(my_list)  # 输出: []

4.列表比较

Python中,列表是可以使用 == 和 != 操作符来比较两个列表。

list1 = [1, 2, 3]
list2 = [1, 2, 3]print(list1 == list2)  # 输出:Truelist3 = [1, 2, 4]print(list1 == list3)  # 输出:False

5. 列表排序

Python中,使用 sort() 方法来对列表进行排序。

list = [5, 1, 4, 3, 6]# 正向排序
list.sort()print(list)  # 输出:[1, 3, 4, 5, 6]# 反向排序
list.sort(reverse=True)print(list)  # 输出:[6, 5, 4, 3, 1]

6. 列表反转

Python中,使用 reverse() 方法来对列表进行反转。

list = [5, 1, 4, 3, 6]list.reverse()print(list)  # 输出:[6, 3, 4, 1, 5]

7. Python列表操作常见函数总结

上面的许多操作,给大家总结如下表,具体的更多用法,期待和大家一起探索。

函数/方法描述
len(list)返回列表的长度。
list.append(element)将元素添加到列表的末尾。
list.insert(index, element)将元素插入到列表的指定位置。
list.remove(element)删除列表中的第一个匹配元素。
list.pop()删除列表中的最后一个元素。
list.pop(index)删除列表中指定位置的元素。
list.count(element)返回列表中元素出现的次数。
list.index(element)返回列表中第一个匹配元素的下标。
list.sort()对列表进行排序。
list.reverse()对列表进行反转。

那么,关于列表(List)数据类型及其操作的函数讲解和示例代码,基本上讲完了,大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。

感谢您的关注,我们下一篇文章将继续学习记录python的下一个知识点。

如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!

往期学习:

Python安装教程(版本3.8.10)windows10

Linux系统:安装Conda(miniconda)

Conda快速安装的解决方法(Mamba安装)

VSCode安装教程(版本:1.87.0)Windows10

Python基础语法:从入门到精通的必备指南

Python的基本数据类型

Python数据类型间的转换(隐式、显式)-CSDN博客

Python基础知识:运算符详解-CSDN博客

Python基础知识:数字类型及数学函数详解-CSDN博客

Python字符串操作及方法详解!一篇就搞定!-CSDN博客

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

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

相关文章

怎么看待Groq

用眼睛看。 就是字面上的意思用眼睛看。 我属于第一波玩到的,先给大家一个直观的印象,Groq到底有多快。 目前Groq只能选Llama的70b,和Mixtral的MoE,那我选7*8的这个MoE模型来实验。 这么好些字大概花了不到1秒,流式响应,其实是不是流式已经没那么重要了 ,然后看每秒Toke…

MongoDB官网查看 MongoClient 驱动API 文档的详细步骤

目录 MongoDB官网查看 MongoClient 驱动API 文档的详细步骤1、先进入[mongodb的官网](https://www.mongodb.com/zh-cn),点击【服务器文档】2、点击这个 [MongoDB Documentation](https://www.mongodb.com/docs/) 文档。3、然后点开【Java】的驱动文档4、先查看同步的…

【数据结构】详解时间复杂度和空间复杂度的计算

一、时间复杂度(执行的次数) 1.1时间复杂度的概念 1.2时间复杂度的表示方法 1.3算法复杂度的几种情况 1.4简单时间复杂度的计算 例一 例二 例三 1.5复杂时间复杂度的计算 例一:未优化冒泡排序时间复杂度 例二:经过优化…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

2024年【P气瓶充装】考试报名及P气瓶充装复审考试

题库来源:安全生产模拟考试一点通公众号小程序 P气瓶充装考试报名是安全生产模拟考试一点通总题库中生成的一套P气瓶充装复审考试,安全生产模拟考试一点通上P气瓶充装作业手机同步练习。2024年【P气瓶充装】考试报名及P气瓶充装复审考试 1、【多选题】《…

WIN32部分知识介绍

🌈前言:此篇博客是为下一篇的《贪吃蛇》的做的前戏工作,这篇会讲到贪吃蛇所用到的一些工具以及函数。 首先在讲WIN32的内容时我们想了解一下他的基本概念: Windows 这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外…

vscode插件-TONGYILingma

通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高…

react-beautiful-dnd组件报Unable to find draggable with id

一、问题现象 项目中使用react-beautiful-dnd组件实现可拖拽,但拖了1次后可能会出现拖拽异常(元素拖不动),打开控制台会发现有报错 二、解决方案 给Draggable组件和其下方的div添加了key就正常了,以下是我自己简单写的一个dem…

磁盘无法访问?别慌,这里有解决之道!

电脑中,那块储存着重要文件与数据的磁盘,突然之间无法访问,是不是让你感到惊慌失措?面对这样的突发状况,很多人可能会感到手足无措。但别担心,本文将为你解析磁盘无法访问的原因,并提供实用的数…

期刊《Computers Security》简介

官网截图 方式 同时支持订阅和OA 范围 latest issue Volume 140 In progress (May 2024) This issue is in progress but contains articles that are final and fully citable. 本期内没有image encryption相关论文。 Volume 139 April 2024 本期内没有image encryptio…

论文学习——一种新的具有分层响应系统的动态多目标优化算法

论文题目:A Novel Dynamic Multiobjective Optimization Algorithm With Hierarchical Response System 一种新的具有分层响应系统的动态多目标优化算法(Han Li , Zidong Wang , Fellow, IEEE, Chengbo Lan, Peishu Wu , and Nianyin Zeng , Member, IE…

基于Java的在线课程教学系统(Vue.js+SpringBoot)

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

阿里云服务器多少钱1月?2024年最新版报价

阿里云服务器一个月多少钱?最便宜5元1个月。阿里云轻量应用服务器2核2G3M配置61元一年,折合5元一个月,2核4G服务器30元3个月,2核2G3M带宽服务器99元12个月,轻量应用服务器2核4G4M带宽165元12个月,4核16G服务…

【物理排序】(最小交换环 | 大体量表排序 | 泛型算法)

设想一下,如果待排元素不是一个简单的整数,而是一个庞大的结构体,移动元素的时间不能忽略不计。 元素需要频繁互换,那么移动这些元素的时间将会非常长久,效率很低 typedef very_large_item {int comparable;Tp very_…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

点赞功能真的有必要上 Redis 吗?(Mongo、MySQL、Redis、MQ 实测性能对比)

目录 一、你会怎么设计一个点赞功能&#xff1f; 1.1、点赞实现思路 1.2、点赞功能设计 1.2.1、MySQL 单表 1.2.2、单表 MySQL 关联表 1.2.3、MySQL 关联表 mq 1.2.4、redis mq 1.2.5、mongodb 关联文档 二、性能测试 2.1、前置说明 2.2、10 万数据准备 一、你会…

【C++】三大特性之继承

1 继承的概念及定义 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展、增加功能&#xff0c;这样产生新的类&#xff0c;称派生类&#xff08;或子类&#xff09;。而被继承的…

Java宝典-抽象类和接口

目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象类的特点 2. 接口2.1 接口的概念2.2 接口的语法2.3 接口的特点2.4 实现多个接口2.5 接口的继承 3. 接口使用案例 铁汁们好,今天我们学习抽象类和接口~ 1. 抽象类 1.1 抽象类的概念 什么是抽象类?在面向对象中,如果一…

Google浏览器122.下载驱动

打开网址&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 选择stable 选择对应的驱动就行