Python 学习中,什么是列表,如何操作列表?

什么是列表

在Python中,列表(List)是一种内置的数据结构,用于存储一系列有序的元素。列表中的元素可以是任意类型,比如整数、字符串、浮点数,甚至是另一个列表。列表是可变的(mutable),这意味着可以在创建列表后修改它。

创建列表

可以通过两种方式创建列表:使用方括号[]或使用内置的list()函数。

# 使用方括号创建列表
my_list = [1, 2, 3, 4, 5]# 使用list()函数创建列表
my_list2 = list([6, 7, 8, 9, 10])

列表的基本操作

1. 访问元素

列表中的元素可以通过索引访问,索引从0开始。负索引用于从列表末尾开始访问元素。

my_list = [10, 20, 30, 40, 50]
print(my_list[0])  # 输出: 10
print(my_list[3])  # 输出: 40
print(my_list[-1]) # 输出: 50
print(my_list[-2]) # 输出: 40
2. 修改元素

通过索引可以直接修改列表中的元素。

my_list = [10, 20, 30, 40, 50]
my_list[1] = 25
print(my_list)  # 输出: [10, 25, 30, 40, 50]
3. 切片(Slicing)

切片操作用于访问列表中的一部分元素。切片返回一个新的列表,其中包含从起始索引到结束索引之间的元素(不包括结束索引)。

my_list = [10, 20, 30, 40, 50]
print(my_list[1:3])  # 输出: [20, 30]
print(my_list[:3])   # 输出: [10, 20, 30]
print(my_list[2:])   # 输出: [30, 40, 50]
print(my_list[-3:])  # 输出: [30, 40, 50]
4. 添加元素

可以使用append()方法在列表末尾添加元素,使用insert()方法在指定位置插入元素。

my_list = [10, 20, 30]
my_list.append(40)
print(my_list)  # 输出: [10, 20, 30, 40]my_list.insert(1, 15)
print(my_list)  # 输出: [10, 15, 20, 30, 40]
5. 删除元素

可以使用remove()方法删除列表中的指定元素,使用pop()方法删除指定位置的元素(默认删除最后一个元素),使用del语句删除指定索引的元素。

my_list = [10, 20, 30, 40, 50]
my_list.remove(30)
print(my_list)  # 输出: [10, 20, 40, 50]my_list.pop()
print(my_list)  # 输出: [10, 20, 40]my_list.pop(1)
print(my_list)  # 输出: [10, 40]del my_list[0]
print(my_list)  # 输出: [40]
6. 列表长度

使用内置函数len()可以获取列表的长度。

my_list = [10, 20, 30, 40, 50]
print(len(my_list))  # 输出: 5
7. 列表排序

可以使用sort()方法对列表进行原地排序,或者使用sorted()函数返回一个排序后的新列表。

my_list = [40, 10, 50, 30, 20]
my_list.sort()
print(my_list)  # 输出: [10, 20, 30, 40, 50]my_list = [40, 10, 50, 30, 20]
sorted_list = sorted(my_list)
print(sorted_list)  # 输出: [10, 20, 30, 40, 50]
8. 列表反转

使用reverse()方法可以反转列表中的元素顺序,或者使用切片操作。

my_list = [10, 20, 30, 40, 50]
my_list.reverse()
print(my_list)  # 输出: [50, 40, 30, 20, 10]my_list = [10, 20, 30, 40, 50]
reversed_list = my_list[::-1]
print(reversed_list)  # 输出: [50, 40, 30, 20, 10]

列表的高级操作

1. 列表推导式(List Comprehensions)

列表推导式是一种简洁的语法,用于创建新的列表。

# 使用普通方法创建平方数列表
squares = []
for x in range(10):squares.append(x**2)
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]# 使用列表推导式创建平方数列表
squares = [x**2 for x in range(10)]
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推导式的语法为[expression for item in iterable if condition]

2. 嵌套列表(Nested Lists)

列表中的元素也可以是列表,形成嵌套列表。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[0][1])  # 输出: 2
print(nested_list[2][2])  # 输出: 9

可以使用嵌套的循环来访问和操作嵌套列表中的元素。

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for sublist in nested_list:for item in sublist:print(item, end=" ")
# 输出: 1 2 3 4 5 6 7 8 9
3. 列表的方法和函数

Python 提供了一些内置方法和函数,用于操作列表。

  • append(x):在列表末尾添加元素x。
  • extend(iterable):扩展列表,添加多个元素。
  • insert(i, x):在指定位置i插入元素x。
  • remove(x):删除列表中的元素x(如果存在多个相同元素,只删除第一个)。
  • pop([i]):删除并返回指定位置i的元素(默认是最后一个元素)。
  • clear():清空列表。
  • index(x[, start[, end]]):返回元素x在列表中的第一个索引,如果没有找到会引发ValueError。
  • count(x):返回元素x在列表中出现的次数。
  • sort(key=None, reverse=False):对列表进行原地排序。
  • reverse():反转列表中的元素。
  • copy():返回列表的浅复制。

列表的常见用途

1. 将字符串转换为列表

可以使用list()函数将字符串转换为列表,其中每个字符成为列表中的一个元素。

s = "hello"
char_list = list(s)
print(char_list)  # 输出: ['h', 'e', 'l', 'l', 'o']
2. 将列表转换为字符串

可以使用join()方法将列表中的元素连接成一个字符串。

char_list = ['h', 'e', 'l', 'l', 'o']
s = ''.join(char_list)
print(s)  # 输出: hello
3. 列表作为栈(Stack)

可以使用列表模拟栈的数据结构,栈是后进先出(LIFO)的结构。使用append()方法添加元素,使用pop()方法删除元素。

stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack)  # 输出: [1, 2, 3]stack.pop()
print(stack)  # 输出: [1, 2]
4. 列表作为队列(Queue)

可以使用列表模拟队列的数据结构,队列是先进先出(FIFO)的结构。使用append()方法添加元素,使用pop(0)方法删除元素。

queue = []
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)  # 输出: [1, 2, 3]queue.pop(0)
print(queue)  # 输出: [2, 3]

列表是Python中非常强大且常用的数据结构,提供了丰富的操作方法和灵活的用法。从基本的创建、访问、修改,到高级的列表推导式和嵌套列表,列表可以满足各种不同的需求。熟练掌握列表的各种操作,是Python编程的基础和必备技能。

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

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

相关文章

【热部署】✈️Springboot 项目的热部署实现方式

目录 🍸前言 🍻一、热部署和手动重启 🍺二、热部署的实现 2.1 手动启动热部署 2.2 自动检测热部署 2.3 关闭热部署 💞️三、章末 🍸前言 小伙伴们大家好,书接上文,通过Springboot 中的 actu…

提升TK直播体验:使用美国直播网络的六大优势

国内有许多公司想在TikTok上进行美国直播,但由于TikTok的政策限制,在国内直接访问存在困难。然而,通过使用Ogcloud的美国直播网络,这一问题得以解决。那么,TikTok海外直播使用美国直播网络具体有哪些优势呢&#xff1f…

【懒删除堆 优先队列】1172. 餐盘栈

本文涉及知识点 懒删除堆 优先队列 LeetCode1172. 餐盘栈 我们把无限数量 ∞ 的栈排成一行,按从左到右的次序从 0 开始编号。每个栈的的最大容量 capacity 都相同。 实现一个叫「餐盘」的类 DinnerPlates: DinnerPlates(int capacity) - 给出栈的最大…

stm32中IIC通讯协议

参考资料:大部分均引用b站江协科技课程、GPT及网络资料 什么是IIC(i2C)通讯协议? 关键字:SCL、SDA、半双工、同步、串行。 IIC(Inter-Integrated Circuit),也称为I2C(In…

不同的llm推理框架

vLLM适用于大批量Prompt输入,并对推理速度要求比较高的场景。 实际应用场景中,TensorRT-LLM通常与Triton Inference Server结合起来使用,NVIDIA官方能够提供更适合NVIDIA GPU运行的高效Kernel。 LightLLM比较轻量、易于扩展、易于上手&…

Linux—KVM虚拟化中使用基本命令管理虚拟机(纯实例)

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年7月2日11点11分 🀄️文章质量:94分 文章目录 前言 1.查看命令帮助 2.查看KVM 的…

c/c++语言的一种日志的编写办法

今日分享一下,从某源码中看到这种日志编写方式,很强。可以借鉴。 这个函数调用的日志函数是不一样的,仔细观看: 这几种日志输出函数,背后都调用了相同的调用。 与之对应的区别就是,函数名称的差异取决于…

mpeg格式怎么转换成mp4?这四种转换方法非常好用!

mpeg格式怎么转换成mp4?在数字视频领域中,MPEG格式算是相对冷门的一种选择,然而,选择这种格式却不是没有代价的,首先,MPEG采用了有损压缩技术,这意味着在视频处理过程中,会丢失一些细…

单个企业年收入达24.7亿!银发游学市场按下“加速键”,兴趣教育平台抢滩布局

干货抢先看 1. 银发游学市场渐趋火热,美国最大的银发游学机构Road Scholar最新披露的财报显示,上个财年公司收入达3.395亿美元(约合人民币24.7亿)。 2. 在国内,一批专注银发兴趣教育的品牌纷纷入局,拓展游…

MYSQL8.0配置

1、下载安装包 2、解压软件包 将MySQL软件包解压在没有中文和空格的目录下 3、设置配置文件my.ini my.ini中加入以下内容 [client] #客户端设置,即客户端默认的连接参数 # 设置mysql客户端连接服务端时默认使用的端口 port3306#默认编码 default-character-set…

一个使用 g++ 模块化编译的 hello world 示例( Ubuntu 20.04 )

1. 确认 ubuntu 版本&#xff1a; 2. 文件夹结构&#xff1a; 3. 各个文件内容&#xff1a; 3.1. myadd.cpp&#xff1a; #include<iostream> using namespace std; int add_xxx( int a,int b ){int result a b;cout << a << " " << …

【C语言】return 关键字

在C语言中&#xff0c;return是一个关键字&#xff0c;用于从函数中返回值或者结束函数的执行。它是函数的重要组成部分&#xff0c;负责将函数的计算结果返回给调用者&#xff0c;并可以提前终止函数的执行。 主要用途和原理&#xff1a; 返回值给调用者&#xff1a; 当函数执…

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许你分步骤创建复杂对象&#xff0c;而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…

朗新天霁eHR GetFunc_code.asmx SQL注入致RCE漏洞复现

0x01 产品简介 朗新天霁人力资源管理系统(LongShine eHR)是一款由北京朗新天霁软件技术有限公司研发的人力资源管理系统,该产品融合了国外先进的人力资源管理理念和国内大量人力资源管理实践经验,是国内功能较为全面、性价比较高的人力资源管理系统之一,系统凭借其集成化…

中国农业会计编辑部中国农业会计杂志社2024年第10期目录

人物风采 为民服务守初心 平凡岗位担使命——记云南省漾濞县畜牧兽医管理服务中心高级畜牧师徐健春 2 会计研究 管理会计在企业全面管理中的应用——以D公司为例 蒯浠语; 3-5,《中国农业会计》投稿&#xff1a;cnqikantg126.com AI时代企业会计数据集成管理策略研究…

MySQL单表千万级数据查询优化大家怎么说(评论有亮点)

题图来自APOD 上次写了一篇MySQL优化实战的文章“MySQL千万级数据从190秒优化到1秒全过程”。 这篇文章主要还是在实战MySQL优化&#xff0c;所以从造数据到查询SQL优化SQL都没有业务或者其它依赖&#xff0c;优化的技巧也不涉及软件架构就是纯SQL优化。 由于笔者经验有限和…

SQL Server和Oracle数据库的实时同步

数据同步在大数据应用中扮演着关键角色&#xff0c;它确保了数据的实时性和一致性&#xff0c;为数据分析和决策提供了重要支持。常见的数据同步方式包括ETL实时同步和实时ETL工具&#xff0c;后者可以基于日志追踪或触发器进行分类。不同的数据库系统针对实时同步也有各自的实…

数据采集技术:selenium/正则匹配/xpath/beautifulsoup爬虫实例

专栏介绍 1.专栏面向零基础或基础较差的机器学习入门的读者朋友&#xff0c;旨在利用实际代码案例和通俗化文字说明&#xff0c;使读者朋友快速上手机器学习及其相关知识体系。 2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。 3.需要强…

电影解说 剪辑实战带货全新蓝海市场,电影解说实战课程(16节)

课程目录 1-影视解说自媒体带货新玩法_1.mp4 2-影视解说选品及解说规范标准_1.mp4 3-电影解说的脚本模版及流程_1.mp4 4-电影解说编写文案及爆火规律_1.mp4 5-手把手教你影视素材哪里找_1.mp4 6-影视解说剪辑、配音及创收方式_1.mp4 7-电影解说剪辑的实操课程A_1.mp4 8…

关于Ubuntu系统中.config文件夹如何找到

Ubuntu中QT项目使用了setting保存配置&#xff0c;但是找不到配置文件保存了在哪里&#xff0c;找了一下&#xff1a; 因为QT里取的名字是&#xff1a; 于是下载everything搜索Nio&#xff0c;发现目录为/home/nio/.config 虽然已经下载了everything找到了&#xff0c;但是发现…