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

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

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

发自心底的热爱,并用你的注意力填满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语言是一门高级语言,但是掌握这些基础的能力,有助于提升自己的编程水平。

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

相关推荐

【常识】如何优化Windows 7

优化Windows7可以让这个经典系统运行更流畅,特别是在老旧硬件上。以下是经过整理的实用优化方案,分为基础优化和进阶优化两部分:一、基础优化(适合所有用户)1.关闭不必要的视觉效果右键计算机...

系统优化!Windows 11/10 必做的十个优化配置

以下是为Windows10/11用户整理的10个必做优化配置,涵盖性能提升、隐私保护和系统精简等方面,操作安全且无需第三方工具:1.禁用不必要的开机启动项操作路径:`Ctrl+S...

最好用音频剪辑的软件,使用方法?

QVE音频剪辑是一款简单实用的软件,功能丰富,可编辑全格式音频。支持音频转换、合并、淡入淡出、变速、音量调节等,无时长限制,用户可自由剪辑。剪辑后文件音质无损,支持多格式转换,便于存储与跨设备播放,满...

Vue2 开发总踩坑?这 8 个实战技巧让代码秒变丝滑

前端开发的小伙伴们,在和Vue2打交道的日子里,是不是总被各种奇奇怪怪的问题搞得头大?数据不响应、组件传值混乱、页面加载慢……别慌!今天带来8个超实用的Vue2实战技巧,每一个都能直击痛...

Motion for Vue:为Vue量身定制的强大动画库

在前端开发中,动画效果是提升用户体验的重要手段。Vue生态系统中虽然有许多动画库,但真正能做到高性能、易用且功能丰富的并不多。今天,我们要介绍的是MotionforVue(motion-v),...

CSS view():JavaScript 滚动动画的终结

前言CSSview()方法可能会标志着JavaScript在制作滚动动画方面的衰落。如何用5行CSS代码取代50多行繁琐的JavaScript,彻底改变网页动画每次和UI/U...

「大数据」 hive入门

前言最近会介入数据中台项目,所以会推出一系列的跟大数据相关的组件博客与文档。Hive这个大数据组件自从Hadoop诞生之日起,便作为Hadoop生态体系(HDFS、MR/YARN、HIVE、HBASE...

青铜时代的终结:对奖牌架构的反思

作者|AdamBellemare译者|王强策划|Tina要点运维和分析用例无法可靠地访问相关、完整和可信赖的数据。需要一种新的数据处理方法。虽然多跳架构已经存在了几十年,并且可以对...

解析IBM SQL-on-Hadoop的优化思路

对于BigSQL的优化,您需要注意以下六个方面:1.平衡的物理设计在进行集群的物理设计需要考虑数据节点的配置要一致,避免某个数据节点性能短板而影响整体性能。而对于管理节点,它虽然不保存业务数据,但作...

交易型数据湖 - Apache Iceberg、Apache Hudi和Delta Lake的比较

图片由作者提供简介构建数据湖最重要的决定之一是选择数据的存储格式,因为它可以大大影响系统的性能、可用性和兼容性。通过仔细考虑数据存储的格式,我们可以增强数据湖的功能和性能。有几种不同的选择,每一种都有...

深入解析全新 AWS S3 Tables:重塑数据湖仓架构

在AWSre:Invent2024大会中,AWS发布了AmazonS3Tables:一项专为可扩展存储和管理结构化数据而设计的解决方案,基于ApacheIceberg开放表格...

Apache DataFusion查询引擎简介

简介DataFusion是一个查询引擎,其本身不具备存储数据的能力。正因为不依赖底层存储的格式,使其成为了一个灵活可扩展的查询引擎。它原生支持了查询CSV,Parquet,Avro,Json等存储格式...

大数据Hadoop之——Flink Table API 和 SQL(单机Kafka)

一、TableAPI和FlinkSQL是什么TableAPI和SQL集成在同一套API中。这套API的核心概念是Table,用作查询的输入和输出,这套API都是批处理和...

比较前 3 名Schema管理工具

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。在本文中,读者将了解三种顶级schema管理工具,如AWSGlue、ConfluentSchemaRegistry和Memph...

大数据技术之Flume

第1章概述1.1Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。1.2Flume的优点1.可以和...