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

Python列表完全指南:操作与技巧

liuian 2025-03-06 16:48 20 浏览

发自心底的热爱,并用你的注意力填满1000个小时就能练成任何你所需要的技能。注意力就是个人能支配且最大的资产,注意力放在哪里,产出就在哪里。

1、引言

在上一节当中给大家介绍了Python语言中常见的运算符,相信你已经掌握了它们的基本的操作。作为一个热爱编程的你我来说,前进的脚步怎能就止步于此呢?Python的乐趣还有很多,许多的奥秘待你我一起去探索。来吧,一起做个狠人,每天搞它一点。

在本篇文章中,我会对Python语言列表的一些基本技术和要点进行解释和说明,这样可以让你更容易掌握Python语言编程。

2、列表的具体操作

首先,我们先来讨论一下如何创建列表list,它的结构定义如下:

列表名称=[元素1,元素2,....]

示例1:menu=['炒饭:10元','青椒炒肉:12元']

从定义中可以知道,等号左边是列表的名称,等号右边是中括号[],中括号中存放的是列表的元素,元素的类型可以是字符串、数值,布尔或对象等。

如创建一个叫menu的列表,列表中有两个元素,第一个元素是“炒饭:10元”,第二个元素是“青椒炒肉:12元”。

用图示来来看更加直观,一个空的列表list1=[]

此时list1的长度为0,而在Python中可以使用内置的函数len()来读取list1的长度,具体实现代码如下:

>>> list1 = [] #定义空列表
>>> len(list1) # 内置函数
0 #结果为0

图示列表menu和代码如下:

>>> menu = ['炒饭:10元','青椒炒肉:12元']
>>> print(menu)
['炒饭:10元', '青椒炒肉:12元']

>>> len(menu) #列表menu的长度
2

>>> menu.index('炒饭:10元') #第一个元素所在索引
0
>>> menu.index('青椒炒肉:12元')
1

对于上面的这个图示和代码:

  • 首先创建一个存储有两个元素的列表menu,menu的容量和长度都是2
  • 然后列表menu中的第一个元素存储的序号是0,第二个元素存储的序号是1;这里的序号在编程语言中叫做索引

2.1、列表切片(slice)

我们再来看个列子:

>>> list =[2,33.3,'a',False,'2d',True]
>>> list[:1]
[2]

>>> list[0:2]
[2, 33.3]

>>> list[2:]
['a', False, '2d', True]

>>> list[:-1]
[2, 33.3, 'a', False, '2d']
>>> list[:]
[2, 33.3, 'a', False, '2d', True]

对于上面的代码中,列表存储有6个元素,有整数、浮点数、字符串和布尔。具体的解释如下:

  • list[:1]中:,在Python语言中,叫做列表切片。当前代码表示获取列表从索引0开始到索引1,但是不包括索引1处的元素,等价于list[0:1]
  • list[0:2],表示获取列表从索引0开始到索引2,但不包含索引2的元素
  • list[2:],表示获取列表从索引2开始到最后一个索引的元素,等价于list[2:len(list)-1]
  • list[:-1],表示获取列表从索引0开始到倒数第一个索引的所有元素,如果是倒数第二个,把-1改为-2即可
  • list[:],表示获取列表中所有的元素,等价于list[0,len(list)-1]

2.2、列表的基本方法

我们一起看个例子:

>>> list =[2,33.3,'a',False,'2d',True]
>>> list.append('hello world!hello python')
>>> list
[2, 33.3, 'a', False, '2d', True, 'hello world!hello python']

>>> list.insert(0,'hello java')
>>> list
['hello java', 2, 33.3, 'a', False, '2d', True, 'hello world!hello python']

>>> item1 = list.remove('2d')
>>> item1
>>> list
['hello java', 2, 33.3, 'a', False, True, 'hello world!hello python']

>>> list.pop()
'hello world!hello python'

>>> list
['hello java', 2, 33.3, 'a', False, True]
>>> list.count('a')
1

>>> list
['hello java', 2, 33.3, 'a', False, True, 'a']
>>> list.count('a')
2

>>> list.clear()
>>> list
[]

对例子代码的解释:

  • list.append('hello world!hello python'),表示向现有列表list中的末尾添加元素
  • list.insert(0,'hello java'),表示将列表的元素统一往后移动,然后再将新元素插入到列表索引为0的位置
  • item1 = list.remove('2d'),表示将列表的元素2d删除,该删除不返回对应的元素
  • list.pop(),表将列表的最后一个元素删除,并返回对应的元素
  • list.count('a'),表示列表中元素‘a’有多少个
  • list.clear(),表示清空列表中所有的元素


3、列表的高级操作

3.1、列表推导式

在Python语言中,列表推导式是一种简洁而且高效的方式来创建列表,具体的语法如下:

new_list = [表达式 for 变量 in 可迭代对象 if 条件]

对语法的解释:

  • 表达式:主要是用来对变量的处理,决定列表元素的值
  • for变量 in 可迭代对象:遍历一个可迭代对象
  • if 条件(可选): 只有满足条件的元素才会被添加到新列表中

我们一起来看个例子:

>>> numbers = [i for i in range(10)]
>>> print(numbers)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


>>> numbers = [i for i in range(10) if i%2]
>>> print(numbers)
[1, 3, 5, 7, 9]

对例子解释:

  • range(10),是一个内置函数,表示生成从0到10,但不包含10的元素的
  • 生成一个0到9的列表

3.2、内置函数

我们再一起看例子:

>>> list
[23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(list)
11

>>> sum(list)
68

>>> min(list)
0

>>> max(list)
23

  • len():获取列表的长度。
  • sum():计算列表元素的和。
  • min()、max():查找最小值与最大值。
  • sorted():排序列表。

3.3、列表的反转与排序

>>> sorted(list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 23]

>>> list.reverse()
>>> list
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 23]

>>> list.sort()
>>> list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 23]

>>> sorted(list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 23]
  • 使用 reverse() 和 sort() 修改原列表。
  • 使用 sorted() 获取新排序后的列表。

4、总结

Python语言是一门高级语言,但是掌握这些基础的能力,有助于提升自己的编程水平。

我写完了,如果对你有触发,有钱途,请帮忙点赞+转发+收藏,谢谢!

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...